как направить открыть почту Gmail композитор в Android? - PullRequest
3 голосов
/ 26 апреля 2011

Я использую следующий код. Проблема в том, что когда я запускаю этот код на устройстве. Он открывает Dailogbox, который имеет 3 варианта для отправки почты. "POP, электронная почта, Gmail" и т. Д. При нажатии на гамиль композитор появляется. Я просто хочу показать Gamil mail composer напрямую. Вместо того, чтобы показывать окно для выбора параметров. Пожалуйста, помогите мне.

Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("text/html");

String subject = "My Subject";

emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);

emailIntent.setType("text/html");

String title = "<p align='center'>" + storyTitle + "<br/>" + storyPubDate + "</p>";

String data = "<p> Sent From ABC APP Sent from my Android </p>";

            emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(title + data));
startActivity(Intent.createChooser(emailIntent, "Email:"));

Ответы [ 6 ]

20 голосов
/ 01 января 2013

Попробуйте это, Perfect

public void shareToGMail(String[] email, String subject, String content) {
    Intent emailIntent = new Intent(Intent.ACTION_SEND);
    emailIntent.putExtra(Intent.EXTRA_EMAIL, email);
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
    emailIntent.setType("text/plain");
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, content);
    final PackageManager pm = activity.getPackageManager();
    final List<ResolveInfo> matches = pm.queryIntentActivities(emailIntent, 0);
    ResolveInfo best = null;
    for(final ResolveInfo info : matches)
        if (info.activityInfo.packageName.endsWith(".gm") || info.activityInfo.name.toLowerCase().contains("gmail"))
            best = info;
    if (best != null)
        emailIntent.setClassName(best.activityInfo.packageName, best.activityInfo.name);
    activity.startActivity(emailIntent);
}
5 голосов
/ 26 апреля 2011

Не уверен насчет необходимости выбора. Это из одного из моих приложений ...

final Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"jimblackler@gmail.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, content);
activity.startActivity(intent);
4 голосов
/ 11 февраля 2014

Попробуйте этот код

 Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
 "mailto", "abc@gmail.com", null));
 emailIntent.putExtra(Intent.EXTRA_SUBJECT, "This is my subject text");
 context.startActivity(Intent.createChooser(emailIntent, null));

Ссылка: http://developer.android.com/reference/android/content/Intent.html#ACTION_SENDTO\

1 голос
/ 22 февраля 2017

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

Хорошая идея этого решения заключается в том, что при повторном нажатии он перенаправляет вас прямо на экран приложения, с которого началось намерение электронной почты.

    Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"));
    intent.putExtra(Intent.EXTRA_SUBJECT, "Your Subject");
    intent.putExtra(Intent.EXTRA_TEXT, "The message");
    try {
        startActivity(intent);
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(this, "Mail account not configured", Toast.LENGHT_SHORT).show();
    }

Спасибо!

0 голосов
/ 26 апреля 2011

Если у вас есть несколько почтовых композиторов на вашем устройстве Android, и вы просто хотите, чтобы Gamil composer запускался по вашему запросу, вам нужно

emailIntent.setClassName("xxxgamil composer package name xxx", "xxxgmail composer class name xxx");  
    startActivity(emailIntent);
0 голосов
/ 26 апреля 2011

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

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

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