【发布时间】:2013-05-29 04:16:19
【问题描述】:
当我从以下两个位置读取时,只读取了部分照片:
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 中提到的文件的代码(即 appStorage 和 externalStorage):
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) {
}
}
【问题讨论】:
-
尝试通过给出绝对路径直接从 sdcard 读取
-
@Srikanth 我不明白这个建议。我的应用程序正在尝试查找用户库中的所有图像。我怎么知道绝对路径是什么?
-
你只是想打开画廊供用户选择吗?你可以有意识地做到这一点
-
@JRowan:不。这正是我的意思。我不是在寻找
Intent.ACTION_PICK。 -
你应该看看 Android 的 MediaStore API。 MediaScanner 为您完成所有扫描并将其保存在 ContentProvider 中。您可以查询结果。 developer.android.com/reference/android/provider/…
标签: android android-intent gallery android-gallery