我正在使用代码String android_id = Settings.Secure.getString(MyApplication.getContext().getContentResolver(),
Settings.Secure.ANDROID_ID);
如果我在不同的机器上运行此代码,则对于同一设备,我将获得不同的android_id。为什么会这样?
预先感谢
答案 0 :(得分:1)
请参阅android 8.0的行为更改: https://developer.android.com/reference/android/provider/Settings.Secure
对于在运行Android 8.0的设备上安装的应用,现在ANDROID_ID的值分别针对每个应用签名密钥和每个用户。对于应用程序签名密钥,用户和设备的每种组合,ANDROID_ID的值都是唯一的。结果,在同一设备上运行具有不同签名密钥的应用程序将不再看到相同的Android ID(即使对于同一用户)。
答案 1 :(得分:0)
假设您正在谈论调试版本,可能是因为您具有不同的调试(默认)密钥库。
答案 2 :(得分:0)
我强烈建议您阅读这篇文章https://developer.android.com/training/articles/user-data-ids
获取唯一的设备ID并不是一种好习惯。
如果您仍然想这样做
String android_id = Settings.Secure.getString(getApplicationContext().getContentResolver(),
Settings.Secure.ANDROID_ID);
也不要忘记它可能为空