按下按钮后,将执行以下代码:takePicture = async function() { if (this.camera) { const options = { quality: 0.5, base64: true } const data = await this.camera.takePictureAsync(options) CameraRoll.saveToCameraRoll(data.uri) } }调试器显示:Possible Unhandled Promise RejectionError: Permission Denied ...显然,CameraRoll需要用户许可才能执行此操作,但是我已经将它们包含在我的AndroidManifest.xml文件中:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.gradualcamera"> <uses-permission android:name="android.permission.INTERNET" /> <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" />我已经尝试删除该应用程序并重新启动Metro服务器。我从“设置”中手动启用了存储权限,现在可以使用了。但是,当我删除该应用程序并再次重新安装它时,不会向用户请求存储权限。我试图用react-native-permissions请求它,但是它不起作用: componentDidMount() { _requestPermission = () => { Permissions.request('storage').then(response => { // Returns once the user has chosen to 'allow' or to 'not allow' access // Response is one of: 'authorized', 'denied', 'restricted', or 'undetermined' console.log(response) }) } }在我将其从onComponentMount方法中删除并用按钮触发后,react-native-permissions方法以某种方式开始起作用。
2 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
只需添加以下行AndroidManifest.xml:
<application tag android:requestLegacyExternalStorage="true"
添加回答
举报
0/150
提交
取消