安卓向SD卡儲存資料時java.io.FileNotFoundException:(Permission denied)
阿新 • • 發佈:2018-11-05
最近在上Android課學習時,需要向SD卡中新建一個data.txt檔案
但現實無法向外圍裝置(SD卡)儲存資料。
在AndroidManifest.xml也加了以下許可權配置資訊
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
但是並沒有用
java.io.FileNotFoundException : /storage/emulated/0/data.txt (Permission denied)
經過查詢,發現在Android6.0 就是API 23之後。APP需要動態獲取許可權。
需要用程式碼獲取許可權,這也是為了使用者資料更加安全。
在Activity程式碼中如上圖加入這些程式碼就可以了。
public static final int EXTERNAL_STORAGE_REQ_CODE = 10 ;
int permission = ActivityCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
// 請求許可權
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
EXTERNAL_STORAGE_REQ_CODE);
}
動態申請許可權:
點允許(allow)就行了