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 SDK 29及以上版本,读取不到/storage/emulated/0/(/storage/sdcard/)路径下文件问题
Android存储及getCacheDir()getFilesDir()getExternalFilesDir()getExternalCacheDir()区别