无法访问照片中的相机胶卷反应本机

时间:2018-08-11 14:29:37

标签: javascript android react-native

我想通过以下代码在React-native中访问手机摄像头的胶卷照片:

_handleButtonPress = () => {

    CameraRoll.getPhotos({
        first: 20,
        assetType: 'Photos',
    })
        .then(r => {
            this.setState({ photos: r.edges });
        })
        .catch((err) => {
            alert(err)
        });
};

但是我在警报中收到此错误:

  

无法获取照片所需的权限:read_external_storage权限

2 个答案:

答案 0 :(得分:1)

如Google Docs中所述,如果设备运行的是Android 6.0(API级别23)或更高版本,并且应用的targetSdkVersion为23或更高版本,则不会通知用户任何应用安装时的权限。

因此,您必须要求用户在运行时授予危险权限

Here's危险权限列表。

您可以在React Native中启用以下权限

try {
    const granted = await PermissionsAndroid.request(
      PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
      {
        'title': 'Access Storage',
        'message': 'Access Storage for the pictures'
      }
    )
    if (granted === PermissionsAndroid.RESULTS.GRANTED) {
      console.log("You can use read from the storage")
    } else {
      console.log("Storage permission denied")
    }
  } catch (err) {
    console.warn(err)
  }

检查here以获得更多详细信息

答案 1 :(得分:0)

我在位于((Example / android / app / src / main / AndroidManifest.xml))的AndroidManifest中添加了此代码:

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

然后我确认了android中的应用程序权限(并且我不知道如何在运行时进行操作)并解决了问题。