android 建立資料夾失敗
阿新 • • 發佈:2019-01-13
android 建立資料夾失敗
下面是我遇到過的原因
1、沒有申請許可權,這個很簡單,在manifect.xml檔案中新增許可權申請
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
2、android版本高於6.0。6.0以後很多手機需要動態申請許可權。光在檔案中配置還不行。
//動態申請許可權 private void getPrimission() { PackageManager pm = getPackageManager(); boolean permission = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.CAMERA", "com.zhengyuan.emcarsend")); if (permission) { //"有這個許可權" } else { //"沒有這個許可權" //如果android版本大於等於6.0,許可權需要動態申請 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { requestPermissions(new String[]{Manifest.permission.CAMERA}, 15); } } permission = PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.WRITE_EXTERNAL_STORAGE", "com.zhengyuan.emcarsend"); if (permission) { //"有這個許可權" //Toast.makeText(Carout.this, "有許可權", Toast.LENGTH_SHORT).show(); } else { //"木有這個許可權" //如果android版本大於等於6.0,許可權需要動態申請 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 15); } } permission = PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_EXTERNAL_STORAGE", "com.zhengyuan.emcarsend"); if (permission) { //"有這個許可權" //Toast.makeText(Carout.this, "有許可權", Toast.LENGTH_SHORT).show(); } else { //"木有這個許可權" //如果android版本大於等於6.0,許可權需要動態申請 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 15); } } }
以上示例這種有相機,儲存空間的讀寫許可權。
3、有時候即使申請了許可權也建立資料夾失敗,可能是一次建立多級目錄,android不支援這個,可以嘗試建立一個一級目錄。
順便提一下,
我是在實現拍照的時候遇到的這個問題,一直拍照失敗,資料夾也建立失敗。
一個原因是建立了多級目錄,
另一個是7.0拍照報錯,exposed beyond app through ClipData.Item.getUri()。
可以參考 https://blog.csdn.net/qq_23179075/article/details/70314473,