ユーザーがメディア ライブラリから写真を選択できるようにしたいのですが、ビデオを選択できるようにしたくありません。写真を選択するだけに制限するのに苦労しています。を使用してギャラリーアプリを開くと
new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
その後、写真とビデオの両方を選択できます。写真のみを選択するように制限する方法はありますか?
ユーザーがメディア ライブラリから写真を選択できるようにしたいのですが、ビデオを選択できるようにしたくありません。写真を選択するだけに制限するのに苦労しています。を使用してギャラリーアプリを開くと
new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
その後、写真とビデオの両方を選択できます。写真のみを選択するように制限する方法はありますか?
そのためには、 を使用して MIME タイプを「image/*」に設定する必要もありますIntent.setType(String type)
。
更新: Uri と MIME タイプを一度に設定する適切な方法は次のとおりです。
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
更新 2:これは、MIME タイプまたはデータ URI を個別に設定すると、何が起こるかを確認するためです (Intent
ソースから取得):
public Intent setType(String type) {
mData = null;
mType = type;
return this;
}
public Intent setData(Uri data) {
mData = data;
mType = null;
return this;
}
少なくとも、これは API 2.2 に当てはまります。
別のオプションは、ACTION_GET_CONTENT
の代わりに使用することですACTION_PICK
。URI をまったく指定しなくても、必要な MIME タイプを設定できます。