Как получить первые два намерения выбора и отобразить только их для пользователя в android - PullRequest
1 голос
/ 11 февраля 2020

Я пытаюсь отобразить только галерею и файловый менеджер в намерении выбора

Итак, я попробовал что-то вроде ниже

Intent intent = new Intent();
                intent.setType("image/*");
                intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
                intent.putExtra(Intent.EXTRA_LOCAL_ONLY,true);
                intent.setAction(Intent.ACTION_PICK);
                startActivityForResult(Intent.createChooser(intent, "Select Picture"), RESULT_LOAD_IMAGE);

Но вместе с галереей и проводником файлов он показывает другие приложения тоже. Он также показывает Google Drive

Итак, я решил выбрать только первые два намерения и удалить другие.

Как этого добиться?

Ответы [ 2 ]

2 голосов
/ 11 февраля 2020

используйте этот тип кода:

Intent i= new Intent(Intent.ACTION_GET_CONTENT);
    i.setType("image/*");

    Intent pickIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    pickIntent.setType("image/*");

    Intent chooserIntent = Intent.createChooser(i, "Select Image");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {pickIntent});

    startActivityForResult(chooserIntent, PICK_IMAGE);
1 голос
/ 11 февраля 2020

Для вашего случая самый простой способ добиться того, что вам нужно, это

, чтобы добавить строку ниже

intent.setData(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

Добавив строку выше, вы можете избавиться от установленных приложений пользователем. но имейте в виду одну вещь

  • , когда вы используете intent.setAction(Intent.ACTION_PICK);, вы увидите Gallery, File Manager и любого встроенного поставщика фото-приложений от производителя телефона.
  • , когда вы используете intent.setAction(Intent.ACTION_GET_CONTENT); вместе с указанным выше вы также увидите диск Google.

Не go для первых двух целей выбора не рекомендуется, и я не знаю причину, также я не знаю как это сделать.

Надеюсь, это дает правильное объяснение с ответом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...