我正在尝试以编程方式从 android 电视获取型号

Posted

技术标签:

【中文标题】我正在尝试以编程方式从 android 电视获取型号【英文标题】:I am trying to get the model number from an android tv programatically 【发布时间】:2017-09-07 21:19:46 【问题描述】:

我尝试了多种方法从索尼 android 电视中获取型号,例如 Build.modelBuild.name,但它返回的内容类似于电视名称(即 Bravia 2015) 我需要的是该特定电视的完整型号(即 KDL-50W800C) 请告诉我该怎么做。

【问题讨论】:

【参考方案1】:

简答:

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 系统属性,如果有人知道请添加,但这里是一些系统属性的链接:

Adding A New Device, DeviceSelectionOptions

【讨论】:

大部分相同的属性可以在/system/build.prop中找到

以上是关于我正在尝试以编程方式从 android 电视获取型号的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式从 Android 的内置图库应用程序中获取/选择图像

Android:以编程方式从数组创建微调器

[Android - Kitkat ]以编程方式从 Android 的内置图库应用程序中获取/选择图像

您如何以编程方式在 Android ICS 及更高版本上截取屏幕截图?

Android:如何以编程方式获取 SHA1/MD5 指纹?

以编程方式从 PEM 获取 KeyStore