Java 无法访问内部存储上的公用文件夹
我有一个应用程序,可以在带有Java 无法访问内部存储上的公用文件夹,java,android,Java,Android,我有一个应用程序,可以在带有外部存储分区或内置/外部SD卡的标准设备上正常工作。但最近我改用宏碁平板电脑进行测试,所有的文件操作都被破坏了 平板电脑只有内部存储器,标准公共目录(下载、DCIM等)位于该存储器上。我有一个存储库,它检查外部是否可用,如果不可用,则配置为使用内部。然而,无论有没有图书馆,我都无法访问公共目录。以下是我的印象: 检测到外部分区,Environment.getExternalDirectory()返回一些公用文件夹、媒体挂载(读/写)状态,但我根本无法写入、读取、创建
外部存储
分区或内置/外部SD卡的标准设备上正常工作。但最近我改用宏碁平板电脑进行测试,所有的文件操作都被破坏了
平板电脑只有内部存储器
,标准公共目录(下载、DCIM等)位于该存储器上。我有一个存储库,它检查外部是否可用,如果不可用,则配置为使用内部。然而,无论有没有图书馆,我都无法访问公共目录。以下是我的印象:
- 检测到外部分区,
返回一些公用文件夹、媒体挂载(读/写)状态,但我根本无法写入、读取、创建目录(在Environment.getExternalDirectory()
Manifest.xml中的读/写权限设置正确)/SD卡是空的,如果访问从某个地方,而不是从另一个,一些巫毒符号魔法,我猜
- 另一方面,当我切换到使用
,我只能将文件写入应用程序专用文件夹(com/myapp/../app_979;)/sdcard是不可访问的,尽管它实际上位于内部内部存储时
- 试图使用
和意图
,以便让Android操作系统 自身决定如何获取/提供对数据和公共内部目录的访问。即使它能工作,我也需要完全重新实现我的FileUtils和FilePicker,仅仅因为这个特定的设备。(这个应用程序已经在几个平板电脑、手机、模拟器上正常工作了…)内容解析程序
从终端直接访问公共内部目录adb shell
没有李>Android设备监视器
如有任何意见,我们将不胜感激。谢谢。有关详细信息,请点击以下链接: 将文件保存到内部存储器时,可以通过调用以下两种方法之一获取相应的目录作为文件:
- getFilesDir()
- getCacheDir()
File file = new File(context.getFilesDir(), filename);
或者,您可以调用openFileOutput()来获取写入内部目录中的文件的FileOutputStream。例如,以下是如何将一些文本写入文件:
String filename = "myfile";
String string = "Hello world!";
FileOutputStream outputStream;
try {
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
outputStream.write(string.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
非常感谢,1615。。。!这解决了问题。谢谢,但我试过了。它使用应用程序的私有位置。我需要能够在公共文件夹中创建/读取/写入文件(下载,DCIM)。它恰好位于这个特定设备的内部存储器上。