问题 特定产品的Android资源


我从设置应用程序中获取此代码...

<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>
    

12950
2018-06-08 02:40


起源



答案:


  1. 从运行时的系统加载正确的字符串资源?

系统不会在运行时加载它。根据为特定目标构建定义的PRODUCT_CHARACTERISTICS预加载正确的字符串资源。所以你不能在从eclipse构建时使用它。这仅用于构建平台上预加载的应用程序。

2。我该怎么做才能添加新产品?例如

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


10
2018-06-13 07:38



非常感谢,我以前见过这个并正常工作! - Luis Daniel
正在寻找源头,偶然发现同样的事情。出于好奇,你从哪里了解到它的起源 product 属性?从处理自定义ROM?我认为这是你预装应用程序的地方。 - Tony Chan


答案:


  1. 从运行时的系统加载正确的字符串资源?

系统不会在运行时加载它。根据为特定目标构建定义的PRODUCT_CHARACTERISTICS预加载正确的字符串资源。所以你不能在从eclipse构建时使用它。这仅用于构建平台上预加载的应用程序。

2。我该怎么做才能添加新产品?例如

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


10
2018-06-13 07:38



非常感谢,我以前见过这个并正常工作! - Luis Daniel
正在寻找源头,偶然发现同样的事情。出于好奇,你从哪里了解到它的起源 product 属性?从处理自定义ROM?我认为这是你预装应用程序的地方。 - Tony Chan


回答你的问题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。
这将如何工作,因为这是一个资源文件。如果需要,您可以创建文件并将信息保存在其中。本地。但它只会在那个设备上。


0
2018-06-08 03:13



你对问题1的回答不是我需要的,从我之前的例子中我猜想属性'product'的值与存储在/ sys / class / dmi / id / uevent上的值进行比较,然后选择正确的资源。 - Luis Daniel