次の 2 つの場所から読み取ると、一部の写真のみが読み取られます。
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
and 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) {
}
}