尝试在未附加到活动时使用权限 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