我有一个与Android内部存储相关的问题。我已经在包根目录中创建了一个文件夹,调用getDir()
并使用MODE_WORLD_WRITEABLE
,因为我希望相机应用程序将捕获的图像写入此文件夹。无论如何,我可以使用DDMS
看到捕获的图像在该文件夹中。
问题是我无法读取该文件。
我尝试使用以下代码读取文件:
File file = context.getDir("images", Context.MODE_WORLD_READABLE);
File image = new File(file, "image.jpeg");
if (image.canRead())
Log.w("read", "can read");
else
Log.w("read", "can't read");
在LogCat中,只有第二条信息(无法读取)。
我也尝试使用文件名创建FileInputStream
,但是我收到了FileNotFoundException
。
有人可以告诉我我在这里做错了什么吗?
提前感谢。
编辑:
读取文件是正确的,但唯一的问题是当相机应用程序将图像保存到指定位置时,相机应用程序对图像文件设置的权限为-rwxrwx---
。更改权限后
adb (chmod 777 image.jpeg)
我能阅读图像。有趣的是Cam应用程序正在使用
----rwxr-x
将图像文件写入sdcard
。在运行时有没有办法更改文件权限?