Android Build.XXX consts标准

Android Build.XXX consts标准,android,Android,关于构建类中的以下常量,我有几个问题: 制造商、型号、产品、品牌、设备 上述常数的值是否有某种标准? 我可以指望所有设备上的值都不为空吗? 从不同的移动运营商购买设备时,价值是否存在差异? 识别设备类型的最佳方法是什么?例如,知道这是从Verizon购买的Galaxy S5?如果存在这样一种方式,它是防弹的吗? 不 不 可能,但不一定 除了统计数字和理由之外,你不应该这么做 根据经验,我建议你不要依赖这些价值观。可能是为了统计数据或显示设备ID之类的东西,但不要将对它们的操作留给非人系统,因为常

关于构建类中的以下常量,我有几个问题:

制造商、型号、产品、品牌、设备

上述常数的值是否有某种标准? 我可以指望所有设备上的值都不为空吗? 从不同的移动运营商购买设备时,价值是否存在差异? 识别设备类型的最佳方法是什么?例如,知道这是从Verizon购买的Galaxy S5?如果存在这样一种方式,它是防弹的吗? 不 不 可能,但不一定 除了统计数字和理由之外,你不应该这么做 根据经验,我建议你不要依赖这些价值观。可能是为了统计数据或显示设备ID之类的东西,但不要将对它们的操作留给非人系统,因为常数往往会有很大的变化


例如,我见过一款Kazam手机,它有一个note2常量。不值得这么头痛。

这些是系统属性,当构建定制的Android ROM时,ROM制造商可以根据他们的要求更改这些值

对于AppDeveloper,您可以直接使用HideAPI从shell命令或java代码中检索这些值

$ adb shell getprop 
or
SystemProperties.get("ro.product.model");
那么,请回答你的问题

没有标准来规范这些值的书写方式。 通常,这些值应该存在于所有遵循CTS并获得CTS证书的设备上,这是系统级的Android设备兼容性。如果每个安卓设备制造商希望其产品得到广泛应用,他们都会遵循CTS标准。 这是由制造商决定的,对于不同的载体,这些值应该是不同的。 对于Android应用程序级别的使用,要识别设备,设备型号就足够了。应用程序开发人员可以从设备模型中获取设备规格。如果您需要操作员信息,可以使用电话管理器获取

 TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
 telephonyManager.getNetworkOperator();

非常感谢:您对识别设备/移动运营商的方法有什么建议吗?当前运营商可以从TelephonyManager中提取,对于设备,您列出的常量是您的最佳选择,但请再次尝试不要过度依赖它们。最好根据屏幕大小、密度、语言等对设备进行分类,所有这些都是Android框架提供的。如果您觉得答案令人满意,请将其标记为正确。谢谢-