Как направить открытый почтовый композитор Gmail на Android?
Я использую следующий код. Неполадка этого, когда я запускаю этот код на устройстве. Он открывает Dailogbox, в котором есть 3 варианта отправки почты. "POP, электронная почта, gmail" и т.д.
Нажимая на гамиль, появляется композитор. Я просто хочу показать Gamil mail composer напрямую. Вместо того, чтобы отображать окно dailog для выбора параметров. Пожалуйста, помогите мне.
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:"));
Ответы
Ответ 1
Попробуйте этот, 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);
}
Ответ 2
Не уверен в необходимости выбора. Это из одного из моих приложений...
final Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, content);
activity.startActivity(intent);
Ответ 3
Попробуйте этот код
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
"mailto", "[email protected]", null));
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "This is my subject text");
context.startActivity(Intent.createChooser(emailIntent, null));
Ref:
http://developer.android.com/reference/android/content/Intent.html#ACTION_SENDTO\
Ответ 4
Вы не можете обойти это всплывающее меню программно. Что произойдет, если пользователь попытается получить доступ к функциям и не настроен ли GMail?
Если вы хотите обойти, просто удалите всех других почтовых клиентов, чтобы GMail был единственным, кто мог отправлять/получать электронные письма. Таким образом всплывающее окно не появится.
Ответ 5
Если у вас есть несколько композиторов почты на вашем устройстве Android, и вы просто хотите, чтобы композитор Gamil начал свой запрос, вы должны
emailIntent.setClassName("xxxgamil composer package name xxx", "xxxgmail composer class name xxx");
startActivity(emailIntent);
Ответ 6
Ниже код работал у меня. Это будет поиск почтового клиента и прямой запуск нового композитора электронной почты с отправленными значениями, предварительно заполненными. Если почтовый клиент не существует, тогда его следует поймать, чтобы избежать сбоя.
Хорошее мнение об этом решении заключается в том, что при повторном нажатии он переходит непосредственно на экран вашего приложения, на котором было отправлено намерение электронной почты.
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();
}
Спасибо!