天天看點

(一看就懂)Environment.getExternalStorageDirectory() is deprecated

Environment.getExternalStorageDirectory()擷取根路徑的方式不友好,比如app删除,app對應的圖檔不删除,儲存路徑是sd卡根路徑

替代方案

getExternalFilesDir(Environment.DIRECTORY_PICTURES) 注意:前面沒有Environment,app删除對應的圖檔相應删除,保護隐私,儲存路徑是

/storage/emulated/0/Android/data/com.wintec.huashang/files/Pictures

getExternalFilesDir(null)則為:/storage/emulated/0/Android/data/com.wintec.huashang/files

實測在android7.1.2的系統上String sdPath = Environment.getExternalStorageDirectory().getAbsolutePath()+"/a/" ;這種方法已經無法建立檔案路徑

Log.e("wy", "絕對檔案路徑: " + file.getAbsoluteFile());
    Log.e("wy", "檔案名: " + file.getName());
    if (!file.exists()) {
        file.mkdirs();
        Log.e("wy", "建立檔案夾,路徑:" + file.getPath());
    }
    String mPath = System.currentTimeMillis() + ".jpg";
    Log.e("wy", "儲存路徑: " + mPath);
    File f = new File(sdPath, mPath);
      
return f;
}