6.0版本有關SDCard讀寫許可權
阿新 • • 發佈:2019-02-14
//SDCard的狀態
String state = Environment.getExternalStorageState();
//判斷SDCard是否掛載上
if (!Environment.MEDIA_MOUNTED .equals(state)) {
return false;
}
//獲取SDCard的路徑
File directory = Environment.getExternalStorageDirectory();
File file = new File(directory, "user.txt");
以上程式碼在Android6.0 sdk23版本之前可以往記憶體卡中讀寫檔案操作。
我的華為手機5.0可以執行,在虛擬機器6.0版本上一直讀寫失敗並且報錯空指標異常。
原因是因為6.0對許可權的設定。具體怎麼寫程式碼我還不清楚,日後會補上。
將AndroidManifest.xml檔案中的
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
改為
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"android:maxSdkVersion="18"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"android:maxSdkVersion="18"/>
表示只在 API <= 18 時,才申請 WRITE_EXTERNAL_STORAGE 許可權。這樣使用者就無法在Android6.0系統的設定下面看到 儲存空間 許可權的開關,當然也就無法關閉它了,