如何在Android中获取在执行手机重置或操作系统更新时无法更改的唯一设备ID?
答案 0 :(得分:149)
您可以在以下链接中查看此博客
http://android-developers.blogspot.in/2011/03/identifying-app-installations.html
ANDROID_ID
import android.provider.Settings.Secure;
private String android_id = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
以上内容来自@ Is there a unique Android device ID?
链接更具体地说,是Settings.Secure.ANDROID_ID。这是在设备首次启动时生成并存储的64位数量。 擦除设备时会重置。
ANDROID_ID似乎是唯一设备标识符的不错选择。有一些缺点:首先,它在2.2之前的Android版本(“Froyo”)上并非100%可靠。此外,在主要制造商的流行手机中至少有一个被广泛观察到的错误,其中每个实例都具有相同的ANDROID_ID。
下面的解决方案并不是一个好的因素设备擦除后存活的价值(“工厂重置”),因此当您的一个客户擦拭设备并将其传递给另一个设备时,您最终可能会犯一个令人讨厌的错误人
您可以使用以下
获取设备的imei号码 TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getDeviceId();
http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29
添加这是清单
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
答案 1 :(得分:24)
我使用以下代码获取Android ID。
String android_id = Secure.getString(this.getContentResolver(),
Secure.ANDROID_ID);
Log.d("Android","Android ID : "+android_id);
答案 2 :(得分:2)
请在Google开发者博客上阅读此官方博客文章: http://android-developers.blogspot.be/2011/03/identifying-app-installations.html
结论对于绝大多数应用程序,要求是 识别特定安装,而不是物理设备。 幸运的是,这样做很简单。
有许多充分的理由可以避免尝试识别 特定设备。对于那些想要尝试的人来说,最好的方法是 可能是在任何合理现代的东西上使用ANDROID_ID 遗留设备的一些后备启发式算法