我想使用适用于手机和平板电脑的Android设备的唯一ID。 (IMEI不适用于没有SIM卡设备,有时MAC地址返回null)
我不确定android.os.Build.SERIAL是否唯一。
有人知道吗?
谢谢, 问候。
答案 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地址可能,但在某些情况下可能无法访问。