【发布时间】:2020-04-07 02:52:57
【问题描述】:
我无法在 android 10 设备上获取序列号。
我知道一切(权限,运行时权限,我只有在获得权限后才能获得串行)从这里 android Build.GetSerial() throwing exception
我的代码适用于所有 android 版本,除了 10
你有什么想法吗?
【问题讨论】:
标签: android xamarin android-10.0
我无法在 android 10 设备上获取序列号。
我知道一切(权限,运行时权限,我只有在获得权限后才能获得串行)从这里 android Build.GetSerial() throwing exception
我的代码适用于所有 android 版本,除了 10
你有什么想法吗?
【问题讨论】:
标签: android xamarin android-10.0
如果您在此处关注官方文档:https://developer.android.com/reference/android/os/Build.html#getSerial(),有关 Android 10 更改的更多信息here
您会注意到,从 Android 10 开始,此方法返回 Build.UNKNOWN。您不能再使用它来唯一标识单个设备了
您需要切换到名为Settings.Secure.ANDROID_ID 的“更少”持久版本
绕过此限制的唯一方法是:
- 创建一个系统应用可以获取
READ_PRIVILEGED_PHONE_STATE系统权限(普通应用无法获取)。- 注册为运营商(要求您已构建 Android ROM)
- 拥有自定义“工作配置文件”以在设备中设置您自己的政策。
您可以想象,所有这些选项都不是标准的 Android 应用开发者可以使用的
【讨论】:
ANDROID_ID 寻求建议。我阅读了更改说明,但我仍然不明白有信息表明它总是会为 Android 10 返回UNKNOWN。如果你有READ_PHONE_STATE 而你没有READ_PRIVILEGED_PHONE_STATE,它应该这样做。跨度>