android: выбор нескольких изображений в галерее и запуск неявного намерения

Как получить путь изображения всех выбранных изображений или просто отобразить их в моем приложении? Я могу начать свое неявное намерение и отобразить его в своем imageView, когда пользователь выбирает изображение в галерее и нажимает кнопку share, как показано ниже

ImageView iv=(ImageView)findViewById(R.id.im);
iv.setImageUri((Uri)getIntent().getExtras().get(Intent.EXTRA_STREAM));

в файле манифеста для моей деятельности

<intent-filter >
            <action android:name="android.intent.action.SEND"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="image/*" />
</intent-filter>

но я хочу выбрать несколько изображений во встроенной галерее, и когда я нажимаю кнопку "Поделиться", я должен иметь возможность отображать их все в своем приложении, так как мне это сделать это?

или получение пути изображения всех выбранных изображений с sdcard было бы более чем достаточно для меня

1 ответов


Я получил его сам: разместив его, как это может помочь другим, если требуется

мы должны сказать android, что когда мы открываем галерею и выбираем кнопку "Поделиться", мое приложение должно быть одним из вариантов поделиться,например:

manifestfile:

<activity android:name=".selectedimages">
        <intent-filter >
            <action android:name="android.intent.action.SEND_MULTIPLE"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="image/*" />
        </intent-filter>
    </activity>

и после выбора нашего приложения он откроет галерею с флажком на каждом изображении, чтобы выбрать изображения, Обработка выбранных изображений в приложении:

selectedimages.файл java:

if (Intent.ACTION_SEND_MULTIPLE.equals(getIntent().getAction())
    && getIntent().hasExtra(Intent.EXTRA_STREAM)) {
    ArrayList<Parcelable> list =
            getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM);
                for (Parcelable parcel : list) {
                   Uri uri = (Uri) parcel;
                   String sourcepath=getPath(uri);

                   /// do things here with each image source path.
               }
                finish();
}
}

public  String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
startManagingCursor(cursor);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}