首页 > 解决方案 > 如何在 Android 10 中读取设备信息?

问题描述

我正在尝试使用 TelephonyManager 读取 Build.SERIAL 和 DeviceId 等设备信息。在 Android 9 及更低版本中,我能够毫无问题地访问所有这些信息。

当我尝试在Android 10中读取设备信息时收到以下异常

GetDeviceId:用户 10727 不满足访问设备标识的要求。

此信息对于我的应用程序的安全性非常重要。我需要一种方法来识别具有不可更改设备身份的设备。

标签: androidandroid-securityandroid-10.0device-instance-id

解决方案


如此处所述,这是 android 10 中引入的更改之一: https ://developer.android.com/about/versions/10/highlights

您应该尝试在此处使用最佳实践之一: https ://developer.android.com/training/articles/user-data-ids

无论如何,根据我的经验,如果您在您的应用程序中获取 UUID,即使您的应用程序被卸载并重新安装,您也将获得相同的 uuid。请注意,此 uuid 不是较新的 Android 设备上的实际设备 uuid。但是,如果您将其存储在您的服务器上,它仍可用于检测卸载和重新安装。

Settings.Secure.getString(App.instance.getContentResolver(), Settings.Secure.ANDROID_ID);

推荐阅读