最近在開發(fā)手機(jī)圖片上傳的功能時,使用的華為mate8手機(jī)進(jìn)行測試跨算,總會是出現(xiàn)讀取不了資源或者寫不了資源的錯誤爆土,如下:
java.io.FileNotFoundException: /storage/emulated/0/Pictures/Screenshots/Screenshot_2016-08-17-11-46-53.png: open failed: EACCES (Permission denied)
在清單文件里添加了關(guān)于文件的讀寫權(quán)限,依舊是返回null诸蚕,好無奈的趕腳步势。最終換了臺小米5測試,發(fā)現(xiàn)沒有出現(xiàn)這個錯誤背犯。然后看了下系統(tǒng)坏瘩,才想起來我的那臺華為mate8是Android 6.0 的。MD漠魏,浪費(fèi)了好多時間倔矾,最終找了關(guān)于6.0的運(yùn)行時權(quán)限看了下,解決了問題柱锹,在此記錄下哪自,以免再犯。
在你需要的地方去檢測權(quán)限禁熏,代碼如下:
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE };
/** * Android 運(yùn)行時權(quán)限 */
private void checkPermission() {
int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions( this,PERMISSIONS_STORAGE,//需要請求的所有權(quán)限壤巷,這是個數(shù)組String[]
REQUEST_EXTERNAL_STORAGE//請求碼
); }}