无法将文件从内部存储加载到库中

时间:2012-06-04 15:22:43

标签: android gallery

我的应用程序有点问题。我有一个功能来拍照并存储它然后加载到画廊。

在存储图片之前,我会检查手机是否有ExternalStorage。如果没有将图片保存在带getFilesDir()的文件目录中,但我无法从内部存储中将其加载到图库中。

ExternalStorage加载图库的代码(重新扫描ExternalStorage,完美地工作):

 path = Environment.getExternalStorageDirectory()+"";
 c.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
                        + path)));

Files目录加载图片的代码(不加载任何内容):

 c.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
                    + c.getFilesDir()+"/files/")));

PS:文件存在。我用adb shell检查了它。

1 个答案:

答案 0 :(得分:2)

默认情况下,保存在内部存储中的文件(应用程序文件夹 - / files)仅适用于创建它们的应用程序 - 在文件系统级别保证 - 并且Gallery应用程序无法加载文件。在内部存储中保存新文件时,必须明确允许该文件可由其他应用程序读/写。参考: http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

“MODE_PRIVATE将创建文件(或替换同名文件)并将其作为应用程序的私有。其他可用的模式有:MODE_APPEND,MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。”