Intent.ACTION_OPEN_DOCUMENTを使用して複数ファイル選択を行うときは、Intent.EXTRA_ALLOW_MULTIPLEをセットします。コードでは以下のようになります。
Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_OPEN_DOCUMENT); intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); String title = "Select multiple images"; Intent chooser = Intent.createChooser(intent, title); startActivityForResult(chooser, CHOSE_FILE_CODE);
上記のコードで、以下のActivityが起動します。画像を長押しで複数選択できるようになります。
ファイルの取得は以下のように行います。
public void onActivityResult(int requestCode, int resultCode, Intent data) { if(resultCode != RESULT_OK)return; if (requestCode != CHOSE_FILE_CODE) return; if (data.getData() != null) { getActivity().getContentResolver().takePersistableUriPermission(data.getData(), Intent.FLAG_GRANT_READ_URI_PERMISSION); } else { ClipData clipData = data.getClipData(); int clipItemCount = clipData.getItemCount(); for (int i = 0; i < clipItemCount; i++) { ClipData.Item item = clipData.getItemAt(i); Uri itemUri = (item != null) ? item.getUri() : null; getActivity().getContentResolver().takePersistableUriPermission(itemUri, Intent.FLAG_GRANT_READ_URI_PERMISSION); } } }
0 件のコメント :
コメントを投稿