Android 13应用迁移遇SecurityException:无法获取IMEI权限求助
问题描述
我在2013/2014年开发的基于Android 4.4(API level 19)的Android应用运行正常,目前正将其升级迁移至Android 13(API level 30+)版本。在Android Studio中运行该应用时,出现以下致命异常:
致命异常日志
FATAL EXCEPTION: main Process: com.vivifyd.ViViFYdActivity, PID: 7472 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vivifyd.ViViFYdActivity/com.vivifyd.ViViFYdActivity}: java.lang.SecurityException: getImeiForSlot: The user 10125 does not meet the requirements to access device identifiers. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: java.lang.SecurityException: getImeiForSlot: The user 10125 does not meet the requirements to access device identifiers. at android.os.Parcel.createExceptionOrNull(Parcel.java:2373) at android.os.Parcel.createException(Parcel.java:2357) at android.os.Parcel.readException(Parcel.java:2340) at android.os.Parcel.readException(Parcel.java:2282) at com.android.internal.telephony.ITelephony$Stub$Proxy.getImeiForSlot(ITelephony.java:11511) at android.telephony.TelephonyManager.getImei(TelephonyManager.java:2049) at android.telephony.TelephonyManager.getImei(TelephonyManager.java:2004) at com.vivifyd.ViViFYdActivity.onCreate(ViViFYdActivity.java:140) at android.app.Activity.performCreate(Activity.java:7994) at android.app.Activity.performCreate(Activity.java:7978) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
已尝试操作
- 查阅了Android 10及以上版本获取IMEI的相关解决方案
- 在
AndroidManifest.xml中添加以下权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.CERT_INSTALL" />
请求帮助
恳请各位提供解决该异常的建议,谢谢。
内容的提问来源于stack exchange,提问作者NOTiFY
相关产品推荐
相关产品推荐

