【问题标题】:Unable to get callback of android permission when user agrees or rejects in React Native当用户在 React Native 中同意或拒绝时,无法获取 android 权限的回调
【发布时间】:2022-08-15 12:08:06
【问题描述】:

我使用react-native-permissions 获得相机权限,它在iOS 中运行良好。 但是当用户同意或拒绝时,我无法获得android权限的回调。 我尝试用PermissionsAndroid 替换它,但我遇到了同样的问题。

最后,我创建了一个 React Native 的新项目,并使用相同的代码获得了 android 权限的回调。这种情况的原因是什么?

注意:两个项目都使用相同版本的 React Native。

更新

我发现我的问题来自于在原始Android项目中使用onRequestPermissionsResult方法,只要我注释它一切正常。

有谁知道什么可能导致这个问题?

  • :O 听起来很奇怪,乔,这不应该发生。这两个应用程序的最小 sdk 版本是什么。也请尝试为两个项目共享 manifest.xml

标签: android react-native permissions android-permissions


【解决方案1】:
  1. 确保您的android/app/src/main/AndroidManifest.xml 文件中有此内容。如果没有,则添加它并重建您的应用程序。
    <uses-permission android:name="android.permission.CAMERA" />
    
    1. 您可以检查您的权限请求的状态,看看它是被阻止还是被授予。
    import RNPermissions, { PERMISSIONS } from 'react-native-permissions';
    
    const requestCameraPermission = async () => {
      const p = PERMISSIONS.ANDROID.CAMERA;
      const checkStatus = await RNPermissions.check(p);
      console.log('checkStatus', checkStatus);
      const requestStatus = await RNPermissions.request(p);
      console.log('requestStatus', requestStatus);
    };
    
    1. 您可能第一次拒绝了许可,在这种情况下,对进一步request() 的响应将始终为blocked。在这种情况下,您应该去应用程序设置并手动更改权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    相关资源
    最近更新 更多