Как создать Намерение, чтобы открыть несколько фотографий без необходимости сначала перейти к «Фото» - PullRequest
0 голосов
/ 01 мая 2019

Итак, я пытаюсь получить Uris нескольких изображений из фотогалереи.Все работает хорошо, но когда запускается Intent, он направляется в окно «Открыть из», и мне приходится нажимать «Фотографии» в левом нижнем углу.Тогда у меня есть возможность нажать «Картинки» и сделать свой выбор.

Было бы намного приятнее, если бы пользователю не нужно было заранее знать, что делать эта последовательность шагов.Я был бы рад, если бы был Intent, который позволял им просто сразу выбирать свои изображения.

Я немного покопался в Intent API, но кажется, что все используют Intent.ACTION_GET_CONTENT с дополнительными Intent.EXTRA_ALLOW_MULTIPLE.Я хочу знать, есть ли в этом намерении твик, способный обойти эти надоедливые дополнительные шаги.

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURES);
public void onActivityResult (int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == SELECT_PICTURES)
        {
            if (resultCode == Activity.RESULT_OK)
            {
                if (data.getClipData() != null)
                {
                    int count = data.getClipData().getItemCount();

                    for (int i = 0; i < count; i++)
                    {
                        Uri uri = data.getClipData().getItemAt(i).getUri();
                        uriList.add(i, uri);
                    }
                }
            }
        }

        // Some other stuff...
    }

1 Ответ

0 голосов
/ 01 мая 2019

Когда вы создаете глобальное намерение, которое говорит: « Я хочу какой-то образ », и есть какое-то приложение в качестве опции для обработки этого действия, ОС не может принять решение о завершении этой задачи с каким приложением.

этот код может вам помочь:

Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
startActivityForResult(intent, SELECT_PICTURES);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...