Ответ 1
Попробуйте setType message/rfc822
вместо text/plain
каждый раз, когда я создаю действие для отправки электронной почты из своего приложения, он запрашивает множество параметров, включая 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);
Снимок экрана для того, что происходит, когда я запускаю этот
Попробуйте setType message/rfc822
вместо text/plain
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:"));
Я думаю, вы должны изменить setType
на
i.setType("message/rfc822") ;
Он покажет все доступные приложения, установленные на телефон 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);
}
Пока вы используете ACTION_SEND
с типом text/plain
, он покажет все допустимые параметры. Однако, если вы хотите, вы можете создать свое собственное диалоговое окно, которое отображает только Gmail или другой почтовый клиент, делая программную обработку программно.
Кстати, почему вам даже нужно это окно, когда вы просто хотите использовать Gmail?
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..."));
вы можете попробовать это:::
Intent.setType("plain/text");
Сначала я заметил это сразу, хотя это была ошибка, и она должна была быть text/plain
, но на самом деле это правильный способ отображать только клиенты электронной почты в списке приложений.
Попробуйте и убедитесь сами.
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);
попробуйте это;:
Настройка Intent.setType на: Intent.setType( "plain/text" ) - это именно то, как принудительно заставить android.content.Intent.ACTION_SEND открыть клиент электронной почты. Идеальное и простое решение. Спасибо!