我是android的新手,我想从外部存储读取所有文件,以制作一个文件浏览器应用程序,但是我找不到访问这些文件的方法。我应该用什么代替environment.getexternalstoragedirectory()?
答案 0 :(得分:0)
使用getExternalFilesDir()
,getExternalCacheDir()
,getExternalMediaDir
()... Read more。
例如(getExternalFilesDir
):
public static File getAppFileDir(Context context) {
File file;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
file = context.getExternalFilesDir(null);
} else {
file = context.getFilesDir();
}
return file;
}
会给您:
android / data / data / your_package_name / files
如果您仍然想使用getExternalStorageDirectory
:
public static File getExternalStorageDirectory(Context context) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
//noinspection deprecation
return Environment.getExternalStorageDirectory();
} else {
try {
File file = getAppFileDir(context);
if (null != file) {
//noinspection ConstantConditions
return file.getParentFile().getParentFile().getParentFile().getParentFile();
} else {
return new File("");
}
} catch (Throwable e) {
e.printStackTrace();
return new File("");
}
}
}
但是不要在发布应用中使用它,因为我不确定它是否可以在所有设备上使用。