我已经尝试了几种方法从索尼安卓电视中获取型号,例如Build.model
和Build.name
,但它返回了类似电视名称的内容(即Bravia 2015)
我需要的是特定电视的完整型号(即KDL-50W800C)
请让我知道如何做到这一点。
答案 0 :(得分:0)
简答:
Build.FINGERPRINT可能会有您正在寻找的东西,然后是一些。 android/os/Build.java下面的代码段:
/** A string that uniquely identifies this build. Do not attempt to parse this value. */
public static final String FINGERPRINT = deriveFingerprint();
/**
* Some devices split the fingerprint components between multiple
* partitions, so we might derive the fingerprint at runtime.
*/
private static String deriveFingerprint() {
String finger = SystemProperties.get("ro.build.fingerprint");
if (TextUtils.isEmpty(finger)) {
finger = getString("ro.product.brand") + '/' +
getString("ro.product.name") + '/' +
getString("ro.product.device") + ':' +
getString("ro.build.version.release") + '/' +
getString("ro.build.id") + '/' +
getString("ro.build.version.incremental") + ':' +
getString("ro.build.type") + '/' +
getString("ro.build.tags");
}
return finger;
}
长答案:
它应该在可读的系统属性中(很可能是上面的那些)。然而,值得注意的是它并不能保证在所有设备/构建上一致地填充。
以下是一些提取数据的方法:
以编程方式通过android/os/Build.java - 针对一组有限的属性,如上所述
以编程方式java.lang.System.getProperty - 使用getProperties(optional string)
在运行时之外只是通过terminal$ adb shell getprop进行调试/查看最新信息 - 这将全部打印出来
以下是一些示例(第一个仿真器,第二个定制的电视机顶盒)
[ro.build.fingerprint]: [generic_x86/sdk_google_atv_x86/generic_x86:5.1.1/LMY48X/2916408:userdebug/test-keys]
[ro.build.product]: [generic_x86]
[ro.build.id]: [LMY48X]
[ro.hardware]: [ranchu]
[ro.product.brand]: [generic_x86]
[ro.product.device]: [generic_x86]
[ro.product.manufacturer]: [unknown]
[ro.product.model]: [sdk_google_atv_x86]
[ro.product.name]: [sdk_google_atv_x86]
[ro.build.fingerprint]: [Android/p202/p202:5.1.1/LMY44V/20170215:userdebug/release-keys]
[ro.build.product]: [p202]
[ro.build.id]: [LMY44V]
[ro.hardware]: [amlogic]
[ro.product.brand]: [Alta]
[ro.product.device]: [p202]
[ro.product.manufacturer]: [AltaDigital]
[ro.product.model]: [H4401]
[ro.product.name]: [p202]
[ro.stb.chip]: [AMLOGICS905]
我不确定是否/哪里可以找到所有的android os系统属性,如果有人知道请添加,但这里有一些系统属性的链接: