安卓:无法读取/存储/模拟文件夹


File file = new File("/storage/emulator");
File[] list = file.listFiles();

列表正在返回null。我已经获得了READ_EXTERNAL_STORAGE许可。该文件夹"/storage/emulator/0"中有这样的路径。我正在尝试阅读该/0/文件夹。我可以使用Environment.getExternalDirectory()访问/storage/emulator/0,但我正在解析 android 存储中的每个文件。我是这样做的

String root_sd = System.getenv("ANDROID_STORAGE");      //root_sd = "/storage"
file = new File(root_sd);
list = file.listFiles();

然后对于列表数组中的每个文件,我都会做同样的事情。

但是由于某种原因,它无法读取/storage/emulated/目录。如何读取此存储?

您无法访问 0 文件夹,这是无法访问它的原因。因此,要打开内部SD卡,您必须对从api 23开始的设备使用getexternalstoragedirectory()。

对于低于 M 的安卓版本,您可以访问 0 文件夹。

对于我在 android 中强大的音乐播放器应用程序,我已经为 android 版本 M 及更高版本进行了硬编码,以便在单击模拟时跳转到 getexternalstoragedirectory() 目录。看看它是如何工作的检查应用程序链接:https://play.google.com/store/apps/details?id=ac.themusicplayer

最新更新