android.os.Build.SERIAL是唯一的吗?

时间:2012-11-20 10:31:58

标签: android unique

我想使用适用于手机和平板电脑的Android设备的唯一ID。 (IMEI不适用于没有SIM卡设备,有时MAC地址返回null)

我不确定android.os.Build.SERIAL是否唯一。

有人知道吗?

谢谢, 问候。

6 个答案:

答案 0 :(得分:20)

是的,但请注意,它仅在API级别9中添加,并且可能不会出现在所有设备上。要在早期平台上获取唯一ID,您需要阅读类似MAC地址或IMEI的内容。

通常,请尝试阅读所有可能的ID,并使用任何可用的ID。 See this article for guidance

答案 1 :(得分:4)

您可以使用Build serial和android ID创建自己的唯一ID。

String serial =    Build.SERIAL;
String android_id =Secure.getString(context.getContentResolver(),
                   Secure.ANDROID_ID);

String myKey=serial +android_id ;

答案 2 :(得分:3)

Serial仅在API中公开:9。但你可以使用反射在旧版本中获得它。然而,文档提到“如果可用”,所以我想不要依赖它。

String deviceSerial = (String) Build.class.getField("SERIAL").get(
                    null);

答案 3 :(得分:3)

我认为对于唯一身份证你应该使用android Id。  以下是获取Android ID的代码。

String android_id = Secure.getString(this.getContentResolver(),
            Secure.ANDROID_ID);
Log.d("Android","Android ID : "+android_id);

答案 4 :(得分:2)

如果,那么预期是唯一的。但无法保证此属性已设置。它也是API 9.不幸的是,没有简单的方法可以唯一地识别设备。一些属性如SERIAL 可以存在,其他像ANDROID_ID一样非唯一,其他像MAC一样取决于WIFI的存在或其状态(如果wifi模块关闭,您可能无法读取它的MAC)。有些像IMEI甚至无法读取设备有手机模块。因此,最好的方法是收集尽可能多的数据,并尝试构建一些可以最有可能考虑唯一设备ID的内容

答案 5 :(得分:1)

MAC,IMEI和SERIAL的组合怎么样?

你只需处理这些事实,即它们都可以是非存在的esp。在没有SIM卡的旧手机上。

我发现奇怪的是MAC会返回null。这不应该是可能的,因为移动设备没有MAC是没有意义的。

有2个MAC地址可能,但在某些情况下可能无法访问。