Android: как открыть представление почтового композитора?

Я просто хочу знать, как открыть Mail Composer в Android.

С iOS я бы сделал что-то вроде этого:

MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
[controller setSubject:@"Mail subject"];
[controller setMessageBody:@"Mail body" isHTML:bool];
[controller setToRecipients:recipientsList];
if(controller) [self presentModalViewController:controller animated:YES];

А как насчет Android?

Большое спасибо.


person Rob    schedule 11.07.2012    source источник
comment
обратитесь к этому предыдущему сообщению stackoverflow.com/questions/10614908/   -  person Aerrow    schedule 11.07.2012


Ответы (4)


Список приложений можно ограничить приложениями электронной почты только с помощью ACTION_SENDTO.

public void composeEmail(String[] addresses, String subject) {
    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:")); // only email apps should handle this
    intent.putExtra(Intent.EXTRA_EMAIL, addresses);
    intent.putExtra(Intent.EXTRA_SUBJECT, subject);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

См. https://developer.android.com/guide/components/intents-common.html#Email

person Danyal Aytekin    schedule 23.07.2014

Если вы хотите открыть только почтовые клиенты, тогда:

Intent intent = new Intent(Intent.ACTION_SEND);
String[] recipients = {"[email protected]"};
intent.putExtra(Intent.EXTRA_EMAIL, recipients);
intent.putExtra(Intent.EXTRA_SUBJECT, "emailTitle:");
intent.putExtra(Intent.EXTRA_CC, "ghi");
intent.setType("message/rfc822");
startActivity(Intent.createChooser(intent, "Send mail"));

В основном похож на принятый ответ, но с другим типом MIME.

person Menelaos Kotsollaris    schedule 22.04.2015

Нравится:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.setType("text/plain");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] emailTo});
    emailIntent.putExtra(android.content.Intent.EXTRA_CC, new String[]{emailCC});
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailText);
    context.startActivity(Intent.createChooser(emailIntent, context.getString("send email using:")));

Вы можете найти более подробную информацию здесь: http://mobile.tutsplus.com/tutorials/android/android-email-intent/

person Nermeen    schedule 11.07.2012

person    schedule
comment
Я сделаю это, как только смогу. У меня просто небольшая проблема: если я сделаю intent.putExtra(Intent.EXTRA_TEXT, "<html>Hello<br/>Just a little mail.</html>"); intent.setType("text/html");, в почтовом композиторе текст не будет отформатирован в формате html. Я пробовал Intent.EXTRA_HTML_TEXT, но мое приложение перестало работать. - person Rob; 11.07.2012
comment
РЕДАКТИРОВАТЬ: наконец, я получил работу с intent.setType("text/html"); intent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml("<html>Hello<br/><b>Just a little test.</b></html>"));. Еще раз спасибо. - person Rob; 11.07.2012