我希望为Android手机和平板电脑使用一个唯一的ID。 IMEI在没有SIM卡的设备上不起作用,有时MAC地址会返回null。
我不确定android.os.Build.SERIAL是否唯一。
请问有人知道吗?
谢谢, 问候。
是的,但请注意它仅在API级别9中添加,并且可能不会存在于所有设备上。在早期平台上获取唯一ID,需要读取诸如MAC地址或IMEI之类的内容。
通常,尝试读取所有可能的ID,并使用任何可用的ID。请参阅此文章了解指导。
您可以使用构建序列号和Android ID来创建自己的唯一ID。
String serial = Build.SERIAL;
String android_id =Secure.getString(context.getContentResolver(),
Secure.ANDROID_ID);
String myKey=serial +android_id ;
我认为对于唯一标识符,您应该使用Android Id。以下是获取Android Id的代码:
String android_id = Secure.getString(this.getContentResolver(),
Secure.ANDROID_ID);
Log.d("Android","Android ID : "+android_id);
串行通信只在API:9中公开。但是您可以使用反射在较旧版本中获取它。但是文档提到“如果可用”,所以不要依赖它。
String deviceSerial = (String) Build.class.getField("SERIAL").get(
null);
MAC地址、IMEI和序列号的组合怎么样?
你只需要处理它们都可能不存在的事实,特别是在没有SIM卡的旧手机上。
我觉得MAC地址返回null很奇怪。在我看来这不可能发生,因为移动设备没有MAC地址没有任何意义。
有两个MAC地址可能存在,但在某些情况下可能无法访问。