ACTION_SEND посылает по электронной почте

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

Есть ли способ принудительно отправлять только почтовые клиенты?

Код для отправки электронной почты

String rec[] = { owner.email };
i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(android.content.Intent.EXTRA_EMAIL, rec);
i.putExtra(android.content.Intent.EXTRA_SUBJECT, "RE: " + desc);
i.putExtra(android.content.Intent.EXTRA_TEXT,
        "\n\n\nSent from Mojo for Android");
startActivity(i);

Снимок экрана для того, что происходит, когда я запускаю этот screenshot

Ответ 1

Попробуйте setType message/rfc822 вместо text/plain

Ответ 2

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[] { "[email protected]" });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
                    "Subject of the Mail");
emailIntent.putExtra( android.content.Intent.EXTRA_TEXT,
                           "This is my sample Mail");
emailIntent.setType("vnd.android.cursor.dir/email");
startActivity(Intent.createChooser(emailIntent, "Email:"));

else это будет показывать только почтовые клиенты,

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("message/rfc822");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[] { "[email protected]" });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
                    "Subject of the Mail");
emailIntent.putExtra( android.content.Intent.EXTRA_TEXT,
                           "This is my sample Mail");
//emailIntent.setType("vnd.android.cursor.dir/email");
startActivity(Intent.createChooser(emailIntent, "Email:"));

Ответ 3

Я думаю, вы должны изменить setType на

i.setType("message/rfc822") ;

Ответ 4

Он покажет все доступные приложения, установленные на телефон Android, которые могут поделиться или отправить ссылку из веб-просмотра другим. Как - Gmail, Facebook, IMO, WhatsApp, Messenger и т.д.

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
String shareLink = webView.getUrl();
intent.putExtra(Intent.EXTRA_TEXT, shareLink);
startActivity(Intent.createChooser(intent, "Share via..."));

Но когда вы заставляете открывать только почтовое приложение:

Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:"));
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});

try {
    startActivity(Intent.createChooser(intent, "send mail"));
} catch (ActivityNotFoundException ex) {
    Toast.makeText(this, "No mail app found!!!", Toast.LENGTH_SHORT);
} catch (Exception ex) {
    Toast.makeText(this, "Unexpected Error!!!", Toast.LENGTH_SHORT);
}

Ответ 5

Пока вы используете ACTION_SEND с типом text/plain, он покажет все допустимые параметры. Однако, если вы хотите, вы можете создать свое собственное диалоговое окно, которое отображает только Gmail или другой почтовый клиент, делая программную обработку программно.

Кстати, почему вам даже нужно это окно, когда вы просто хотите использовать Gmail?

Ответ 6

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("mailto:?to=email&subject=hello&body=hello%20world"));
startActivity(Intent.createChooser(intent, "Send via..."));

вы можете попробовать это:::

Ответ 7

Intent.setType("plain/text");
Сначала я заметил это сразу, хотя это была ошибка, и она должна была быть text/plain, но на самом деле это правильный способ отображать только клиенты электронной почты в списке приложений.

Попробуйте и убедитесь сами.

Ответ 8

String rec[] = { owner.email };
i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822") ;
i.putExtra(android.content.Intent.EXTRA_EMAIL, rec);
i.putExtra(android.content.Intent.EXTRA_SUBJECT, "RE: " + desc);
i.putExtra(android.content.Intent.EXTRA_TEXT,
        "\n\n\nSent from Mojo for Android");
startActivity(i);

попробуйте это;:

Ответ 9

Настройка Intent.setType на: Intent.setType( "plain/text" ) - это именно то, как принудительно заставить android.content.Intent.ACTION_SEND открыть клиент электронной почты. Идеальное и простое решение. Спасибо!