我注意到直接从代码获取的 Android_id 值与通过 Android 调试桥 (ADB) 检索的 Android_id 值之间存在差异。我试图了解这种差异是如何发生的。
对于 Android 10 及更高版本,我正在寻找要使用的常量值。由于 Android 操作系统的权限发生变化,使用 device_id 不再可行。因此,我希望使用 android_id 作为替代。您能否提供任何见解或解决方案来解决这个问题?
我如何在代码中获取它:
var b = global::Android.Provider.Settings.Secure.GetString(global::Android.App.Application.Context.ContentResolver, global::Android.Provider.Settings.Secure.AndroidId);
我如何从 adb 获取它:
adb shell settings get secure android_id
我使用调试模式在 Xamarin 和 Maui 项目上测试了获取 ANDROID_ID 的方法。我发现id是一样的。但是当我使用 adb shell 获取 ANDROID_ID 时,我得到的 id 与代码不同。我还在Android Studio上创建了一个Android项目并在物理设备上进行了测试,但我遇到了同样的情况,ANDROID_ID不同。
它可以解释为什么代码和ADB shell之间的ANDROID_ID不同。由于签名密钥的原因,它们不能相同。