我在Play商店中有一个应用程序,并且用户向我发送了一个错误报告,说明在他的设备上外部存储设备列表中未列出外部SD卡,但是已安装并可在{{1 }}
我有一个列出文件夹的对话框,起始目录是/mnt/external_sd
。
在单击一下以访问父文件夹后,到达Environment.getExternalStorageDirectory()
文件夹,/storage
返回null。
我应该设置哪个起始文件夹才能访问完整的存储结构?
修改
作为一种解决方法,我在我的应用偏好中添加了选择存储根目录应该是getParent()
还是硬编码Environment.getExternalStorageDirectory()
的功能。
评论/回答是否有最好的选择。
答案 0 :(得分:0)
在Android
上获取外部存储父文件夹
通过外部存储,我假设您的意思是微型SD卡存储。
外部SD卡未列在外部存储设备列表中, 虽然已在
安装和访问/mnt/external_sd
您无法使用Environment.getExternalStorageDirectory()
方法访问SD存储空间。
在 API级别19 之前,无法正式存储在SD卡中。但是,许多人可以使用非官方API来做到这一点。
正式地,在API级别19(Android版本4.4 - Kitkat)的Context
类中引入了一种方法。
File[] getExternalFilesDirs (String type)
它返回所有应用程序特定目录的绝对路径 应用程序可以放置的共享/外部存储设备 它拥有的持久文件。这些文件是应用程序的内部文件, 并且通常不会被用户视为媒体。
这意味着,它将返回Micro SD卡和内部存储器的路径。通常,第二个返回路径将是micro SD卡的存储路径。
根据Google / official Android docs,内部和外部存储术语 与我们的想法完全不同。