同一台设备上的同一设备的不同Settings.Secure.ANDROID_ID

时间:2019-02-21 09:48:03

标签: android

我正在使用代码String android_id = Settings.Secure.getString(MyApplication.getContext().getContentResolver(), Settings.Secure.ANDROID_ID);

来获取AndroidId

如果我在不同的机器上运行此代码,则对于同一设备,我将获得不同的android_id。为什么会这样?

预先感谢

3 个答案:

答案 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);

也不要忘记它可能为空