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

Android 无法将文件从内部存储加载到库中,android,gallery,Android,Gallery,我的应用程序有点问题。我有一个功能,拍摄照片,并存储它,然后加载到画廊 在存储图片之前,我会检查手机是否有外部存储。如果没有,图片将使用getFilesDir()保存在文件目录中,但我无法从内部存储器将其加载到图库中 从ExternalStorage将图片加载到库中的代码(重新扫描ExternalStorage,工作正常): 从文件目录加载图库中图片的代码(不加载任何内容): PS:文件存在。我用adb shell检查了它,默认情况下,保存在内部存储器中的文件(应用程序文件夹-/files)仅可

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

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

ExternalStorage
将图片加载到库中的代码(重新扫描ExternalStorage,工作正常):

文件
目录加载图库中图片的代码(不加载任何内容):


PS:文件存在。我用adb shell检查了它,默认情况下,保存在内部存储器中的文件(应用程序文件夹-/files)仅可用于创建它们的应用程序-这在文件系统级别得到保证-Gallery应用程序无法加载该文件。在内部存储器中保存新文件时,必须明确允许其他应用程序读取/写入该文件。参考:


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

加载后是否会变为null,或者你出错了?没有错误,但我在厨房里看不到图片。你能显示你如何显示图片的代码吗?我没有按程序显示图片。我只是强迫画廊重新扫描目录,然后把它加载到新图片中。函数如上图所示。好的,这段代码没有提到任何关于图库的内容。它只是说明您正在发送一个意图。你说广播工作正常,所以这让我相信告诉gallery显示图像的代码是错误的。这是一个更正确的答案,尽管gallery应用程序很有可能只是假设它无法访问其他应用程序内部存储区域中的文件,不检查访问权限是否已被授予。Gallery应用程序不需要“假定”任何内容:)这是我的工作代码片段:
String filePath=getApplication().getFilesDir().getAbsolutePath()+File.separator+fileName;文件f=新文件(文件路径);意图=新意图();setAction(android.content.intent.ACTION\u视图);intent.setDataAndType(Uri.fromFile(f),“image/*”;星触觉(意向)很高兴听到它工作。出于好奇,您能否将图像添加到gallery的收藏中,或者您是否只能让gallery的查看器根据您的应用程序的要求显示图像?这是用于从我的应用程序在gallery viewer中打开图像的代码。
 path = Environment.getExternalStorageDirectory()+"";
 c.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
                        + path)));
 c.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
                    + c.getFilesDir()+"/files/")));