在Android上读取图库中的所有图像文件

3

当我从以下两个位置读取时,只有一些照片被读取:

File appStorage = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File externalStorage = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

下载的照片无法读取。然而,如果我手动打开相册应用程序,我会在其中看到所有的照片。
那么我怎样才能读取相册中的所有图像呢?基本上,在哪里查看?
编辑:
我真的认为我的问题很明显,但出于某种原因,人们似乎陷入了“ ACTION_PICK”的困境。我正在寻找正如我以上所说的东西。如果我想使用“ ACTION_PICK”,我将使用以下代码:
public void dispatchGalleryIntent(View view) {
        Intent gallery = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(gallery, LOAD_IMAGE_REQUEST_CODE);
    }

我不需要我的用户从相册中选择图片。不。我需要的是应用程序本身加载相册中的所有图像。我真的不确定还能怎么说了。
注意:
如果需要更多澄清,这里是我用来读取我在原帖中提到的文件(即appStorageexternalStorage)的代码:
void addFiles(final File parent, Set<File> images) {
    try {
        for (final File file : parent.listFiles()) {
            if (!file.isDirectory()) {
                images.add(file);
            } else {
                addFiles(file, images);
            }
        }
    } catch (Exception e) {
    }
}

尝试通过提供绝对路径直接从sd卡中读取。 - Srikanth Pai
@Srikanth 我不理解你的建议。我的应用程序正在尝试查找用户库中的所有图像。我怎么知道绝对路径是什么? - Pouton Gerald
你只是想打开相册让用户选择吗?你可以使用一个意图来实现。 - JRowan
@JRowan:不,这正是我的意思。我不是在寻找Intent.ACTION_PICK - Pouton Gerald
你应该查看Android的MediaStore API。MediaScanner会为您执行所有扫描并将其保存在ContentProvider中。您可以查询结果。http://developer.android.com/reference/android/provider/MediaStore.Images.html - Anirudh
也许可以尝试类似这样的方法:https://dev59.com/H2_Xa4cB1Zd3GeqP0V8T,像 Picasa 图片之类的需要不同的代码处理才能获取。 - JRowan
1个回答

1
尝试以下内容。
File file = Environment.getExternalStorageDirectory();

你需要过滤掉正确的扩展名,例如jpg, png等
编辑:
你是正确的。我的解决方案并不完美,因为你会得到各种奇怪的图片,甚至不知道它们存在于你的设备上。我只是试图引导人们走向正确的方向,以便有更好信息的人可以回答你。
另一方面,在我的特定设备上,如果我省略Android子目录,如/storage/sdcard0/Android/...,所有我的图片都很好。但我不能说这是最终答案,因为我不知道其他设备会有什么反应。你需要知道画廊应用程序是如何工作的,或者更好的是如何借助画廊应用程序并获得它所看到的一切。也许通过使用某种类型的光标,但我不知道如何使用。

1
+1 以回答我的问题。当我尝试这样做时,它会返回任何带有图像扩展名的东西,例如壁纸。如果你尝试一下,你就会知道我在说什么。但是我只想要出现在用户画廊子文件夹中的图片,没有更多了。基本上,我不希望用户能够看到我的应用程序无法向他们显示的画廊中的图片。但是除此之外没有其他图片。 - Pouton Gerald
我尝试使用Android过滤器。垃圾数量确实大大减少,但我仍然从我的设备中的DCIM目录中获取了一些图像。无法确定用户可能会从其他非图库目录看到什么。 - Pouton Gerald

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接