Статьи

Совет: предоставление пользователям возможности отправлять электронную почту из приложений Android — простой способ

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

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

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

Теперь вы готовы продолжить этот быстрый совет.

Вы также можете начать работу с открытым исходным кодом, предоставленным для этого быстрого совета.

Почтовые приложения могут быть запущены для отправки сообщения со следующим намерением: android.content.Intent.ACTION_SEND. Начните с создания Намерения этого типа, как показано ниже, в вашем обработчике нажатия кнопок:

Это очень общий тип Intent. По сути, он сообщает системе Android, что ваше приложение хочет отправить куда-то какое-то сообщение — намерение ACTION_SEND можно использовать для отправки сообщений различных типов, включая сообщения электронной почты, текстовые сообщения (SMS), графические сообщения (MMS) и т. Д. Поэтому необходимо добавить в Intent дополнительную информацию о конфигурации, чтобы операционная система Android правильно соответствовала вашему запросу для соответствующего приложения.

Например, если вы планируете отправлять текстовые данные, вы можете установить тип Intent с помощью метода setType () следующим образом:

На типичном устройстве приложение Messaging и приложение Mail обычно обрабатывают отправку текстовых сообщений.

Настройка намерения

При запуске этого намерения любые приложения, поддерживающие обмен текстовыми сообщениями, смогут обработать этот запрос. После того, как вы установили данные типа для Intent, вы можете вызвать метод startActivity (), передав свой Intent:

Запуск намерения

Пользователи могут устанавливать любое количество приложений Android на свои устройства. Часто они устанавливают несколько приложений для обмена сообщениями. Например, они могут иметь отдельный персональный почтовый клиент и рабочие почтовые клиентские приложения. Вы можете разрешить пользователю выбирать, какое приложение обрабатывать Intent, предоставив вызов startActivity () с помощью метода createChooser ():

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

Обработка, когда несколько приложений могут отправлять почту

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

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

Следующий код создает намерение, настраивает дополнительные функции и запускает новое действие:

Теперь, если вы запускаете намерение ACTION_SEND, поля заполняются для пользователя.

Предоставление содержимого сообщения

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

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

Разработчики мобильных приложений Лорен Дарси и Шейн Кондер являются соавторами нескольких книг по разработке Android: углубленная книга по программированию под названием « Разработка беспроводных приложений для Android» и « Разработка Android-приложений Sams TeachYourself за 24 часа» . Когда они не пишут, они тратят свое время на разработку мобильного программного обеспечения в своей компании и оказание консультационных услуг. С ними можно связаться по электронной почте [email protected] , через их блог на androidbook.blogspot.com и в Twitter @androidwireless .

Купить Android-разработку беспроводных приложений, 2-е издание Купить Sam's Teach Yourself для Android-разработки приложений в течение 24 часов Код Мамламбо в Код-Каньоне