Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Receive multiple Images from gallery in the onActivityResult method

I am trying to get multiple images from gallery in my app's onActivity Result method but I am not able to create a cursor for the same . And if I do not use cursor than I am unable to get the Uris of all the images. If I have to select a single image , the code is pretty simple :

@Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);

 if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
     Uri selectedImage = data.getData();
     String[] filePathColumn = { MediaStore.Images.Media.DATA };

     Cursor cursor = getContentResolver().query(selectedImage,
             filePathColumn, null, null, null);
     cursor.moveToFirst();

     int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
     String picturePath = cursor.getString(columnIndex);
     cursor.close();

     // String picturePath contains the path of selected Image
     }

Can anybody help me with this.

like image 387
Puneetr90 Avatar asked Apr 25 '14 10:04

Puneetr90


1 Answers

Gallery doesn't seem to allow multiple items, but other apps that may respond to the chooser intent can (e.g. Photos on my Samsung Galaxy tablet). You can get the multiple Uris by using getClipData(), something like:

ClipData clip = data.getClipData();

for(int i = 0; i < clip.getItemCount(); i++) {
    ClipData.Item item = clip.getItemAt(i);
    Uri uri = item.getUri();

    // Process the uri...
}

Note you might also get a response as data.getData(), as in your question, so it's necessary to check both...

like image 63
Mete Avatar answered Oct 13 '22 02:10

Mete