在android上阅读库中的所有图像文件

时间:2013-05-29 04:16:19

标签: android android-intent gallery android-gallery

当我从以下两个位置阅读时,只会读取部分照片:

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);
    }

我不需要我的用户从图库中选择图像。不。我需要的是应用程序本身加载库中的所有图像。我真的不确定怎么说这个。

注:

如果需要进一步澄清,这里是我用来读取我在OP中提到的文件的代码(即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) {
    }
}

1 个答案:

答案 0 :(得分:1)

尝试以下

File file = Environment.getExternalStorageDirectory();

您需要过滤正确的扩展程序,例如jpg, png, etc

编辑:

你是对的。我不是一个很好的解决方案,因为你得到了你设备上甚至不知道的所有奇怪的图像。我只是想让人们朝着正确的方向转向,所以也许有更好信息的人可以回答你。

另一方面,在我的特定设备上,如果我遗漏Android子目录,/storage/sdcard0/Android/...中的所有图像都是好的。但我不能说这是最后的答案,因为我现在不知道其他设备会如何表现。您基本上需要知道图库应用程序如何做到或更好,但如何搭载图库应用程序并获得它看到的一切。也许通过使用某种光标,我不知道如何使用。