Отправка электронной почты из приложения Android при нажатии кнопки
Мне нужно предоставить функцию пользователям, где пользователи могут делиться некоторыми данными, отправляя электронную почту. Я использовал ниже код.
Intent email = new Intent(android.content.Intent.ACTION_SENDTO);
email.setType("message/rfc822");
email.putExtra(Intent.EXTRA_EMAIL, new String[] { to });
email.putExtra(Intent.EXTRA_SUBJECT, subject);
email.putExtra(Intent.EXTRA_TEXT, message);
startActivity(Intent.createChooser(email,"Choose an Email client :"));
Это показывает электронную почту, gmail, Skype и отправляет через Bluetooth для выбора пользователем. Я не хочу, чтобы пользователь показывал Skype, отправляя через bluetooth в этом списке. Что мне нужно сделать? У меня есть WhatsApp в моем телефоне, который делает то же самое, но не показывает электронную почту, bluetooth в списке (Settings- > help- > Contactus → ...). Отображает только электронную почту и Gmail в списке. Мне нужно сделать то же самое.
Ответы
Ответ 1
Попробуйте следующее:
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
"mailto","[email protected]", null));
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, message);
startActivity(Intent.createChooser(intent, "Choose an Email client :"));
Если у вас нет конкретного получателя, выполните следующие действия:
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
"mailto", "", null));
Ответ 2
используйте этот метод для совместного использования через gmail только jus, вам нужно позвонить
startActivity(getSendEmailIntent(context, email,subject, body));
public Intent getSendEmailIntent(Context context, String email,
String subject, String body) {
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
try {
// Explicitly only use Gmail to send
emailIntent.setClassName("com.google.android.gm",
"com.google.android.gm.ComposeActivityGmail");
emailIntent.setType("text/html");
// Add the recipients
if (email != null)
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[] { email });
if (subject != null)
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
subject);
if (body != null)
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body));
// Add the attachment by specifying a reference to our custom
// ContentProvider
// and the specific file of interest
// emailIntent.putExtra(
// Intent.EXTRA_STREAM,
// Uri.parse("content://" + CachedFileProvider.AUTHORITY + "/"
// + fileName));
return emailIntent;
// myContext.startActivity(emailIntent);
} catch (Exception e) {
emailIntent.setType("text/html");
// Add the recipients
if (email != null)
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[] { email });
if (subject != null)
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
subject);
if (body != null)
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body));
// myContext.startActivity(Intent.createChooser(emailIntent,
// "Share Via"));
return emailIntent;
}
}