针对特定产品的Android资源

12

我从“设置”应用程序获取了这个代码...

<string name="about_settings" product="tablet">About tablet</string>
<string name="about_settings" product="default">About phone</string>

那么我的问题是:

  1. 系统在运行时从哪里加载正确的字符串资源?
  2. 我该怎么做才能添加新产品?例如:

    <string name="about_settings" product="laptop">About laptop</string>
    
2个回答

12
  1. 在运行时,系统从哪里加载正确的字符串资源?

系统不会在运行时加载它。根据为特定目标构建定义的PRODUCT_CHARACTERISTICS,预先加载正确的字符串资源。因此,您无法在使用Eclipse进行构建时使用它。这仅用于构建预装在平台上的应用程序。

2. 我必须做什么才能添加新产品?例如:

需要在device.mk文件中添加到PRODUCT_CHARACTERISTICS。


在查看源代码时偶然发现了同样的事情。出于好奇,你是从哪里学到这个“product”属性的起源的?是从定制ROM中工作中学到的吗?我猜那是你预装应用程序的地方。 - Tony Chan

-1

回答你的问题1。
你可以通过以下方式获得它们:

String mystring = getResources().getString(R.string.mystring);

但是你的strings.xml应该像这样

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="tablet" >About tablet</string>
    <string name="default" >About phone</string>
 </resources>

回答你的问题2。
这将如何工作,因为那是一个资源文件。如果你想的话可以创建一个文件并将信息保存在本地,但它只会存在于那个设备上。


你对问题1的回答不是我需要的,根据我的先前示例,我猜测属性“product”的值与存储在/sys/class/dmi/id/uevent上的值进行比较,然后选择正确的资源。 - Luis Daniel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接