【问题标题】:Fetch unique device identifier of device(IMEI or serial number) in android 12 [duplicate]在android 12中获取设备的唯一设备标识符(IMEI或序列号)[重复]
【发布时间】:2021-09-28 20:39:23
【问题描述】:

我正在开发一个应用程序,我在其中将我的应用程序设置为个人资料所有者以获取设备的 IMEI 和序列号。但在 android 12 中,IMEI 和序列号都受到限制,我们无法进一步获取这些参数。您能否告诉我除了使设备成为系统应用程序或使应用程序设备所有者之外,还有哪些其他选项可以获取设备的 IMEI 和序列号。

【问题讨论】:

  • 如果你真的需要IMEI和序列号,具体来说,我相信你没有一个简单的方法。但也许另一个唯一标识符可能适合您的用例。您可以查看here
  • 另外,您提到的限制似乎是在 Android 10 (API 29) 中添加的,而不是 12。
  • 这能回答你的问题吗? Get Permanent Unique ID for android device

标签: java android kotlin android-12


【解决方案1】:

正如 Android 的参考所描述的,应用访问 IMEI 的唯一方法是满足列出的条件之一 (Link):

从 API 级别 29 开始,永久性设备标识符受到额外限制的保护,并且建议应用使用可重置标识符(请参阅唯一标识符的最佳做法)。如果满足以下条件之一,则可以调用此方法:

  • 如果调用应用程序已被授予 READ_PRIVILEGED_PHONE_STATE 权限;这是一项特权权限,只能授予设备上预加载的应用程序。
  • 如果调用应用程序是完全托管设备的设备所有者、组织拥有设备的配置文件所有者或其代理人(请参阅 DevicePolicyManager.getEnrollmentSpecificId())。
  • 如果调用应用在任何活动订阅中都拥有运营商权限(请参阅 hasCarrierPrivileges())。
  • 如果主叫应用是默认 SMS 角色持有者(请参阅 RoleManager.isRoleHeld(java.lang.String))。
  • 如果调用应用已被授予 Manifest.permission#USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER 权限。

您必须选择其中之一或依赖其他标识符,例如可重置的 android-id

【讨论】:

    猜你喜欢
    • 2015-08-31
    • 2022-06-16
    • 2013-10-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 2018-11-15
    相关资源
    最近更新 更多