android - 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)
解决方案
推荐阅读
- javascript - 使用ajax和sweet alert调用函数
- c# - 设置我的部分视图,不工作 xamarin
- excel - 有没有办法让一个消息框出现一个按钮来打开电子邮件模板?
- java - (Spring/JpaRepository) 继承 JpaRepository 的方法从 BaseEntityRepository 到 SubEntityRepository
- laravel - 为什么在 Laravel 默认模型用户中,显示方法设置为“用户 $user”?
- json - 在pyspark中用格式编写json
- javascript - 条件允许时缩短
- c++ - 如何在 Visual Studio 2019 C++ 中创建非虚拟文件夹
- android - 即使在存储权限和 SU 之后尝试访问 /system/build.prop 时 EACCES(权限被拒绝)
- python - 如何使用 SQLALCHEMY 从两个表中获取数据