2016-02-16 2 views
0

У меня есть 2 типа намерений для обмена. Один для простых общих сообщений, таких как SMS/Slack и т. Д., И еще один для электронной почты. Я не могу понять, как определить, где я могу найти способ решить то, что выбрал кто-то с помощью выбора, и использовать соответствующие намерения.Совместное назначение электронной почты или намерение общего назначения

(Это будет сделано с помощью нажатия на кнопку Отправить и все послать варианты будут отображаться в Chooser

Любая помощь с этим было бы удивительным.

Intent shareIntent = new Intent(Intent.ACTION_SEND); 
shareIntent.setType("text/plain"); 
Intent chooser = Intent.createChooser(shareIntent,""); 

Моя мысль была при разрешении Chooser I мог видеть, был ли это тип электронной почты, но это, похоже, не работает.

ответ

0

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

Как обсуждалось в How to filter specific apps for ACTION_SEND intent (and set a different text for each app), если вы хотите настроить выборщик, у вас есть несколько вариантов. Вы можете:

  • Используйте Intent.EXTRA_INITIAL_INTENTS, чтобы использовать другие намерения в дополнение к опции по умолчанию.
  • Создайте свой собственный Chooser, который обеспечивает поведение, которое вы хотите

Первый вариант не может быть идеальным, так как упорядочение вариантов может быть не хочу, чтобы вы хотите.

Второй вариант обеспечивает гораздо больший контроль, но для работы требуется много работы, особенно если вы хотите использовать более новые функции платформы, такие как прямой обмен с контактом.

Другим вариантом было бы изменить ваш пользовательский интерфейс, чтобы предлагать отдельные опции «share» и «email», а затем использовать намерения по умолчанию для каждого.

Смежные вопросы