我有一个应用程序可以在External storage
分区或内置/外部SD卡的标准设备上正常工作。但是最近我切换到Acer平板电脑进行测试,所有文件操作都被打破。无法访问内部存储器上的公共文件夹
该平板电脑只有Internal storage
,标准公用目录位于其上(下载,DCIM等)。我有一个存储库检查是否可用,如果没有 - 配置为使用内部。但是,我完全无法访问公共目录,无论有没有图书馆。这里是我的印象:
会检测到外部分区,
Environment.getExternalDirectory()
返回一些公共文件夹,MEDIA_MOUNTED(读/写)状态,但我不能写,读,在所有创建的任何目录(读/写Manifest.xml
的权限设置正确);/sdcard是空的,如果从某个地方访问,而不是从另一个,一些伏都教符号链接魔术,我猜...另一方面,当我切换到使用
Internal storage
,我只能写文件到应用程序私人文件夹(com/myapp /.../ app_)/ sdcard无法访问,但实际上它位于内部。- 试图使用
Intents
和ContentResolvers
为了让Android操作系统 本身决定如何获取/提供访问数据和公共内部目录。即使它工作,我也需要完全重新实现我的FileUtils和FilePicker,仅仅是因为那个特定的设备。(该应用在多个平板电脑,手机,模拟器上正常工作...) adb shell
from terminal give me直接访问公共内部目录;Android Device Monitor
不;
有任何意见表示赞赏。谢谢。
https://developer.android.com/training/permissions/requesting.html – 1615903
非常感谢,1615 ...!这解决了问题。 – speirs23