Android Q 限制对 IMEI 和序列号的访问。它仅适用于具有特殊运营商许可的平台和应用程序。此外,权限 READ_PRIVILEGED_PHONE_STATE 不适用于非平台应用程序。
现有版本(Android P、Android O、Android M)我们使用序列号来唯一标识设备。现在,我们在尝试访问设备标识符时遇到了以下异常。
Android Q 限制对 IMEI 和序列号的访问。
06-21 12:37:07.460 1250 2555 W DevicePolicyManager: Package com.nagra.nmp.corepaktest (uid=10201, pid=32694) cannot access Device IDs
06-21 12:37:07.460 1250 2555 W TelephonyPermissions: reportAccessDeniedToReadIdentifiers:com.nagra.nmp.corepaktest:getSerial:isPreinstalled=false:isPrivApp=false
06-21 12:37:07.464 32694 32718 W System.err: java.lang.SecurityException: getSerial: The user 10201 does not meet the requirements to access device identifiers.
06-21 12:37:07.464 32694 32718 W System.err: at android.os.Parcel.createException(Parcel.java:2069)
06-21 12:37:07.464 32694 32718 W System.err: at android.os.Parcel.readException(Parcel.java:2037)
06-21 12:37:07.465 32694 32718 W System.err: at android.os.Parcel.readException(Parcel.java:1986)
06-21 12:37:07.465 32694 32718 W System.err: at android.os.IDeviceIdentifiersPolicyService$Stub$Proxy.getSerialForPackage(IDeviceIdentifiersPolicyService.java:159)
06-21 12:37:07.465 32694 32718 W System.err: at android.os.Build.getSerial(Build.java:149)
06-21 12:37:07.465 32694 32718 W System.err: at com.nagra.CppUnitForAndroid.TestBridge.start(Native Method)
06-21 12:37:07.466 32694 32718 W System.err: at com.nagra.CppUnitForAndroid.TestWrapper.start(TestWrapper.java:111)
06-21 12:37:07.466 32694 32718 W System.err: at com.nagra.CppUnitForAndroid.TestWrapper.access$200(TestWrapper.java:58)
06-21 12:37:07.466 32694 32718 W System.err: at com.nagra.CppUnitForAndroid.TestWrapper$WrapperThread.run(TestWrapper.java:427)
Run Code Online (Sandbox Code Playgroud)
06-21 12:37:07.472 1250 2555 W DevicePolicyManager: Package com.nagra.nmp.corepaktest (uid=10201, pid=32694) cannot access Device IDs
06-21 12:37:07.472 2744 2764 W TelephonyPermissions: reportAccessDeniedToReadIdentifiers:com.nagra.nmp.corepaktest:getDeviceId:isPreinstalled=false:isPrivApp=false
06-21 12:37:07.473 32694 32718 W System.err: java.lang.SecurityException: getDeviceId: The user 10201 does not meet the requirements to access device identifiers.
06-21 12:37:07.474 32694 32718 W System.err: at android.os.Parcel.createException(Parcel.java:2069)
06-21 12:37:07.474 32694 32718 W System.err: at android.os.Parcel.readException(Parcel.java:2037)
06-21 12:37:07.474 32694 32718 W System.err: at android.os.Parcel.readException(Parcel.java:1986)
06-21 12:37:07.474 32694 32718 W System.err: at com.android.internal.telephony.ITelephony$Stub$Proxy.getDeviceId(ITelephony.java:10278)
06-21 12:37:07.474 32694 32718 W System.err: at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:1565)
06-21 12:37:07.474 32694 32718 W System.err: at com.nagra.CppUnitForAndroid.TestBridge.start(Native Method)
06-21 12:37:07.474 32694 32718 W System.err: at com.nagra.CppUnitForAndroid.TestWrapper.start(TestWrapper.java:111)
06-21 12:37:07.474 32694 32718 W System.err: at com.nagra.CppUnitForAndroid.TestWrapper.access$200(TestWrapper.java:58)
06-21 12:37:07.474 32694 32718 W System.err: at com.nagra.CppUnitForAndroid.TestWrapper$WrapperThread.run(TestWrapper.java:427)
Run Code Online (Sandbox Code Playgroud)
哪一个(属性/API)用于唯一标识设备?
只有系统应用程序才能访问硬件 ID。如果您的应用需要识别在不同设备上运行的应用的唯一实例,您应该使用Firebase InstanceID服务等 API,但不同提供商也提供类似的选项。
值得注意的是,即使在较旧的 Android 版本中,Google 也不鼓励使用硬件 ID 功能。
| 归档时间: |
|
| 查看次数: |
8844 次 |
| 最近记录: |