我正在尝试将捕获的图片保存到我的设备库中,并将其取回以在我的项目中显示。但这里的平均问题是权限拒绝问题。我已经用这些设置了"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 />
我知道有些事情没有做,但是我不能弄清楚,我需要关于这个issue...screenshot的帮助这里Error screenshot
发布于 2020-06-30 13:27:06
我能够通过请求许可来弄清楚这一点。我用下面的代码解决了这个问题:
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);
});
}
};
https://stackoverflow.com/questions/62655681
复制