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;
}