Android 29及以上高版本获取SD外部存储器目录

Posted zhangphil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 29及以上高版本获取SD外部存储器目录相关的知识,希望对你有一定的参考价值。

android 29及以上高版本获取SD外部存储器目录/storage/emulated/0

     // 获得SD外部存储根目录一般为:/storage/emulated/0
    public static File getSDRootPath(Context context) 
        File sdPath;
        boolean isSDExist = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); //SD卡是否存在
        if (isSDExist) 
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) 
                File externalFileRootDir = context.getExternalFilesDir("");
                do 
                    externalFileRootDir = Objects.requireNonNull(externalFileRootDir).getParentFile();
                 while (Objects.requireNonNull(externalFileRootDir).getAbsolutePath().contains("/Android"));
                sdPath = Objects.requireNonNull(externalFileRootDir);
             else 
                sdPath = context.getExternalFilesDir("");
            
         else 
            sdPath = Environment.getRootDirectory();//根目录
        

        return sdPath;
    

以上是关于Android 29及以上高版本获取SD外部存储器目录的主要内容,如果未能解决你的问题,请参考以下文章

Android 内部存储/外部存储 及 读写权限

处理Android SDK 29及以上版本,读取不到/storage/emulated/0/(/storage/sdcard/)路径下文件问题

Android获取外置SD卡读写路径

Android获取外置SD卡读写路径

Android存储及getCacheDir()getFilesDir()getExternalFilesDir()getExternalCacheDir()区别

Xamarin Forms Android 10 及更高版本在公共外部存储中按文件名查找视频并获取路径