1. 程式人生 > >android 建立資料夾失敗

android 建立資料夾失敗

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