按下按鈕后,將執行以下代碼: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方法以某種方式開始起作用。
React Native CameraRoll權限被拒絕
幕布斯6054654
2021-05-03 16:45:57