尝试在未附加到活动时使用权限 API

Posted

技术标签:

【中文标题】尝试在未附加到活动时使用权限 API【英文标题】:Tried to use permissions API while not attached to an activity 【发布时间】: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

【问题讨论】:

我已经解决了这个问题,我必须明确请求许可。我将在这里发布代码 【参考方案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);
            );
        
    ;

【讨论】:

以上是关于尝试在未附加到活动时使用权限 API的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.IllegalStateException:片段未附加到活动

将服务重新附加到活动?

样式 TargetType 在未附加到调试器时会导致 XamlParseException

权限被拒绝尝试附加到已安装目录中的文件

权限拒绝:无法附加文件,文件需要导出提供程序,或 grantUriPermission(),API 29

使用 API 路由时,在未授权时返回 Http Response 401 而不是重定向到登录页面