安卓10创建文件夹失败

最近在做拍照录像功能,已经有了文件读写权限,却发现在9.0手机上正常使用,但是在安卓12系统上根本没有创建文件夹。经过研究发现,创建名称为“DCIM”的文件夹可以,别的又都不行。而且是getExternalStorageDirectory和getDataDirectory都不行。

原来在安卓10以后要用Context#getExternalFilesDir(String)这个方法,路径是

/storage/emulated/0/Android/data/com.weizu.downloader/files

而且要在Androidmainfest 里面的application添加:android:requestLegacyExternalStorage=“true”
在这里插入图片描述

下面贴出文件目录代码

 public static String getSDPath(Context context) {
        File sdDir = null;
        boolean sdCardExist = Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED);// 判断sd卡是否存在
        if (sdCardExist) {
            if (Build.VERSION.SDK_INT >= 29) {
            //Android10之后
                sdDir = context.getExternalFilesDir(null);
            } else {
                sdDir = Environment.getExternalStorageDirectory();// 获取SD卡根目录
            }
        } else {
            sdDir = Environment.getRootDirectory();// 获取跟目录
        }
        Log.i("TAG", "onCreate3: " + sdDir.toString());
        return sdDir.toString();
    }

    /**
     * 创建SD卡目录
     */
    public static boolean isFolderExists(String strFolder) {
        File file = new File(strFolder);
        return file.exists() || file.mkdirs();
    }

   /**
     * 初始化文件夹子
     */
    private void initData() {

        // 文件路径设置
        String parentPath = getSDPath(this);

        isFolderExists(parentPath);}

你可能感兴趣的:(android)