如何在Android中获取唯一设备ID,在手机重置或操作系统更新时无法更改?
如何在Android中获取唯一设备ID,在手机重置或操作系统更新时无法更改?
更新:2019年11月19日
下面的答案已经不再适用于现在。
因此,对于任何正在寻找答案的人,您应该查看下面链接的文档:
https://developer.android.com/training/articles/user-data-ids
旧答案 - 现在不相关。
您可以在以下链接的博客中检查此内容:
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似乎是唯一设备标识符的不错选择。存在缺点:首先,在Android 2.2(“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"/>
我使用以下代码来获取Android id。
String android_id = Secure.getString(this.getContentResolver(),
Secure.ANDROID_ID);
Log.d("Android","Android ID : "+android_id);