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;
}