【问题标题】:Tried to use permissions API while not attached to an activity尝试在未附加到活动时使用权限 API
【发布时间】:2020-10-20 15:39:41
【问题描述】:

我正在尝试将捕获的图片保存到我的设备库并将其取回以显示在我的项目中。但这里的平均问题是权限拒绝问题。我已经用这些设置了“AndroidManifest.xml”: 但我仍然得到错误,这是我的代码....

render() {
    return (
      <View style={styles.container}>
          <RNCamera
            ref = {ref=>{
                this.camera=ref;
            }}
            style={styles.preview}
            flashMode={this.state.flashon}
            type={this.state.backCamera ? RNCamera.Constants.Type.back : RNCamera.Constants.Type.front} 
            captureAudio={this.state.captureAudio}
            androidCameraPermissionOptions={{
              title: 'Vocajam needs ermission to use camera',
              message: 'We need your permission to use your camera',
              buttonPositive: 'Ok',
              buttonNegative: 'Cancel',
            }}
          >
              {
                ({ camera, status, androidRecordAudioPermissionOptions }) => {
                  if (status !== 'READY') return <PendingView />

我知道有些事情没有做,但无法弄清楚,我需要关于这个问题的帮助...截图在这里Error screenshot

【问题讨论】:

  • 我已经解决了这个问题,我必须明确请求许可。我将在这里发布代码

标签: react-native react-native-camera react-native-permissions


【解决方案1】:

通过请求许可,我能够弄清楚。我用下面的代码解决了它:

checkAndroidPermission = async () => {
    try {
      const permission = PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE;
      await PermissionsAndroid.request(permission);
      Promise.resolve();
    } catch (error) {
      Promise.reject(error);
    }
};

    takePicture = async () => {
        if (this.camera) {
          if (Platform.OS === 'android') {
            await this.checkAndroidPermission();
          }
            const options = { quality: 1 };
            const data = await this.camera.takePictureAsync(options);
            //save photo
            CameraRoll.save(data.uri, 'photo').then(onfulfilled => {
                ToastAndroid.show(onfulfilled, ToastAndroid.SHORT);
            }).catch(error => {
                ToastAndroid.show(`${error.message}`, ToastAndroid.SHORT);
            });
        }
    };

【讨论】:

    猜你喜欢
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多