授予 PermissionsAndroid.PERMISSIONS.CAMERA 后仍未看到照片

Photo still not seen after PermissionsAndroid.PERMISSIONS.CAMERA is granted

我的 React Native 0.66 应用程序需要有 CAMERA 权限才能访问 Android 中图库中的照片。以下是应用启动时添加到启动画面的权限功能。

//require Camera permission when open gallery
  const requestCameraPermission = async () => {
    try {
      const granted = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.CAMERA,
        {
          title: "添加权限",
          message:
            "app正常运行需要用到相册。请点OK ",
          buttonNegative: "Cancel",
          buttonPositive: "OK"
        }
      );
      if (granted === PermissionsAndroid.RESULTS.GRANTED) {
        return true; //console.log("You can use the camera");
      } else {
        console.log
      }
    } catch (err) {
     
      console.log(err);
    }
  };

if (Platform.OS === 'android') requestCameraPermission();

当第一次访问图库时,上面的函数会弹出一个 window 请求权限。但是点击OK后,应用中还是看不到选取的图片。同样在设置 -> 应用程序 -> 应用程序权限下的设备中,不存在 CAMERA 权限。顺便说一句,iOS 上的图像拾取配置(此处未显示)工作正常。

您需要在本机模块中添加权限。

AndroidManifest.xml(Android),

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.CAMERA" />

Info.plist(iOS),

<key>NSCameraUsageDescription</key>
    <string>Your own description of the purpose</string>

<key>NSPhotoLibraryAddUsageDescription</key>
    <string>Your message to user when the photo library is accessed for the first time</string>

<key>NSPhotoLibraryUsageDescription</key>
<string>Your message to user when the photo library is accessed for the first time</string>

也在你app/build.gradle文件中,

 defaultConfig {
    ...
    missingDimensionStrategy 'react-native-camera', 'general' // <--- insert this line
  }