關於華為手機讀取SD卡許可權沒用記錄一下
阿新 • • 發佈:2019-02-19
一般來說,android開發要獲取手機許可權的時候只需要在AndroidManifest.xml中新增許可權程式碼即可,例如"
親測有用 記錄一下
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
但是 ,對於華為手機 一招就不行了, 我這邊需要一個小功能,就是拍照 上傳圖片到伺服器,然後在其他介面進行顯示, 拍照的程式碼就不帖了,只是這個在上傳圖片的時候就會提示上傳失敗,提示原因:" open failed: EACCES (Permission denied)" 什麼意思呢,就是開啟失敗許可權被拒絕,最好找了半天,華為這個系統讀取SD卡需要在你請求哪個類中把這個許可權直接用java程式碼來新增 不多說了 直接貼程式碼記錄下
定義變數
在onCreate方法下面新增下列程式碼即可private static final int REQUEST_EXTERNAL_STORAGE = 1; private static String[] PERMISSIONS_STORAGE = { Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE };
int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE); if (permission != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions( this, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE ); }
親測有用 記錄一下