Я хочу отправить электронное письмо, и при нажатии кнопки мне нужен список приложений на основе электронной почты. Когда я использую приведенный ниже исходный код, он выводит все приложения на основе сообщений, как показано на рисунке.
Intent intent2 = new Intent(Intent.ACTION_SEND);
intent2.setData(Uri.parse("mailto:"));
intent2.setType("plain/text");
intent2.putExtra(Intent.EXTRA_EMAIL, new String[]{email});
startActivity(intent2);
Когда я нажимаю кнопку, такие приложения показывают
but I want only e-mail based apps, such as. What I should change to get such list of apps?
вы можете использовать это
btnReport.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String mailto = "mailto:[email protected]" +
"?cc = " +
"&subject = " + Uri.encode("your subject") +
"&body = " + Uri.encode("your mail body");
Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse(mailto));
try {
startActivity(emailIntent);
} catch (ActivityNotFoundException e) {
Toast.makeText(context, "Error to open email app", Toast.LENGTH_SHORT).show();
}
}
});
не использует sendto, чтобы исключить использование вложений.
Просто вызовите намерение для электронной почты в своем onClicklistener,
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});
email.putExtra(Intent.EXTRA_SUBJECT, subject);
email.putExtra(Intent.EXTRA_TEXT, message);
//need this to prompt`enter code here`s email client only
email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "Choose an Email client :"));
без изменений, он также показывает приложения WhatsApp, Telegram, Bluetooth