0

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

在存储图片之前,我会检查手机是否有ExternalStorage. 如果不是,图片将保存在 Files 目录中,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.

4

1 回答 1

2

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

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

于 2012-06-12T14:53:22.860 回答