首页 > 解决方案 > React Native for Android 11 使用 READ_PHONE_NUMBERS 从设备获取电话号码

问题描述

有人对 Android 11 更新有任何想法吗?我的 APP 在 SIM 上获取用户电话号码,我正在使用 READ_PHONE_STATE 权限来获取此号码,但最近 Google 被迫将 SDK 定位在 30(Android11)以上,并且从具有 Android 11 的设备上,我的 APP 崩溃了,所以我检查了来自 Google 的文档(https ://developer.android.com/about/versions/11/privacy/permissions#phone-numbers)并添加了清单并更新了其他内容。现在我的APP在Android 11上请求获取电话号码的权限,不再崩溃,但它返回null,无法获取电话号码。所以问题是,有什么办法可以解决这个问题?还是 React Native 不支持在 Android 11 上获取电话号码?这是日志

2021-08-05 15:57:16.427 29800-30293/? E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
    Process: com.shuket.worldmart.bakchon, PID: 29800
    java.lang.SecurityException: getLine1NumberForDisplay: Neither user 11034 nor current process has android.permission.READ_PHONE_STATE, android.permission.READ_SMS, or android.permission.READ_PHONE_NUMBERS
        at android.os.Parcel.createExceptionOrNull(Parcel.java:2385)
        at android.os.Parcel.createException(Parcel.java:2369)
        at android.os.Parcel.readException(Parcel.java:2352)
        at android.os.Parcel.readException(Parcel.java:2294)
        at com.android.internal.telephony.ITelephony$Stub$Proxy.getLine1NumberForDisplay(ITelephony.java:10831)
        at android.telephony.TelephonyManager.getLine1Number(TelephonyManager.java:5349)
        at android.telephony.TelephonyManager.getLine1Number(TelephonyManager.java:5317)
        at com.learnium.RNDeviceInfo.RNDeviceModule.getPhoneNumberSync(Unknown Source:66)
        at com.learnium.RNDeviceInfo.RNDeviceModule.getPhoneNumber(Unknown Source:0)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.facebook.react.bridge.JavaMethodWrapper.invoke(Unknown Source:147)
        at com.facebook.react.bridge.JavaModuleWrapper.invoke(Unknown Source:21)
        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(Unknown Source:0)
        at android.os.Looper.loop(Looper.java:246)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(Unknown Source:37)
        at java.lang.Thread.run(Thread.java:923)

标签: androidreact-native

解决方案


推荐阅读