如何在执行手机重置或操作系统更新时获取无法更改的 Android 中唯一设备 ID?
3 回答
更新:19 -11-2019
以下答案与当今不再相关。
因此,对于任何寻找答案的人,您应该查看下面链接的文档
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);
以上来自链接@有唯一的Android设备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"/>
我使用以下代码获取 Android id。
String android_id = Secure.getString(this.getContentResolver(),
Secure.ANDROID_ID);
Log.d("Android","Android ID : "+android_id);
请阅读谷歌开发者博客上的这篇官方博客文章: http ://android-developers.blogspot.be/2011/03/identifying-app-installations.html
结论对于绝大多数应用程序,要求是识别特定的安装,而不是物理设备。幸运的是,这样做很简单。
避免尝试识别特定设备有很多很好的理由。对于那些想尝试的人来说,最好的方法可能是在任何相当现代的东西上使用 ANDROID_ID,并为旧设备提供一些后备启发式
.