2010-04-29 7 views
30

Я разрабатываю приложение, в котором мне нужно открыть почтовый клиент при нажатии кнопки. Почтовый клиент должен быть открыт с заранее определенным предметом и адресом «до». Есть ли способ достичь этого? Просьба предоставить мне решение и пример кода, если это возможно ...Открытие почтового клиента при нажатии кнопки

+0

Возможный дубликат [Как открыть программу электронной почты с помощью намерений (но только программа электронной почты)] (http://stackoverflow.com/questions/3312438/how-to-open-email-program-via-intents-but -only-a-mail-program) – mixel

ответ

62

выглядит следующим образом:

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("plain/text"); 
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]" }); 
intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); 
intent.putExtra(Intent.EXTRA_TEXT, "mail body"); 
startActivity(Intent.createChooser(intent, "")); 

В качестве альтернативы можно использовать IntentFactory.getSendEmailIntent(String mailTo, String mailCC, String subject, CharSequence body, File attachment).

+1

Когда я нажимаю кнопку, ее отображение показывает, что НЕТ ЗАЯВЛЕНИЙ МОЖЕТ ПРОИЗОШИТЬ ЭТО ДЕЙСТВИЕ .... Какое решение ??? –

+0

Это будет работать только на реальном устройстве. – yanchenko

+0

Есть ли другой способ открыть почтовый клиент в моем эмуляторе .. ???? –

0

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

9

Чтобы показать только клиенты электронной почты используют этот код:

Intent intent = new Intent(Intent.ACTION_VIEW); 
Uri data = Uri.parse("mailto:[email protected]?subject=" + subject + "&body=" + body); 
intent.setData(data); 
startActivity(intent); 

Если вы уже выбрали почтовый клиент по умолчанию, то он запустит его. В противном случае он отобразит список доступных почтовых клиентов.

+0

это прекрасно работает ... Я удивлен, почему он работал без разрешений? – anshulkatta

+0

@anshulkatta Поскольку он не выполняет никаких действий, требующих разрешений. Он просто открывает активность, которая может отправлять электронную почту. – mixel

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