每当我创建一个从我的应用程序发送电子邮件的操作时,它会提示许多选项,包括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);
我启动此功能时会发生什么的屏幕截图
答案 0 :(得分:26)
尝试设置message/rfc822
而不是text/plain
答案 1 :(得分:5)
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[] { "abc@xyz.com" });
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:"));
否则使用它只显示邮件客户端
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("message/rfc822");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[] { "abc@xyz.com" });
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:"));
答案 2 :(得分:4)
我认为您应该将setType
更改为
i.setType("message/rfc822") ;
答案 3 :(得分:3)
尽管@thepoosh为时已晚,但对将来的提问者可能会有帮助。经过大量的搜索和测试,我终于找到了一个很好的解决方案。 感谢开源开发者cketti分享了他/她的简洁解决方案。
String mailto = "mailto:bob@example.org" +
"?cc=" + "alice@example.com" +
"&subject=" + Uri.encode(subject) +
"&body=" + Uri.encode(bodyText);
Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse(mailto));
try {
startActivity(emailIntent);
} catch (ActivityNotFoundException e) {
//TODO: Handle case where no email app is available
}
This是其要旨的链接。
答案 4 :(得分:1)
它将显示安装在android手机上的所有可用应用,这些应用可以执行共享或将webview的链接发送给其他人。喜欢-Gmail,facebook,imo,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..."));
答案 5 :(得分:0)
只要您使用ACTION_SEND
类型为text/plain
,它就会显示所有有效选项。但是,如果您愿意,可以通过编程方式进行过滤,设计自己的对话窗口,该窗口仅显示Gmail或其他邮件客户端。
顺便说一句,为什么在你只想使用Gmail时甚至需要这个窗口?
答案 6 :(得分:0)
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 :(得分:0)
Intent.setType("plain/text");
首先,当我发现这一点时,我立刻发现它是一个错误而且它应该是text/plain
,但这实际上是仅在应用程序列表中显示电子邮件客户端的正确方法。
试一试,亲眼看看。
答案 8 :(得分:0)
intent.setPackage("com.google.android.gm");
//添加Gmail包强制打开Gmail App
答案 9 :(得分:-1)
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);
试试这个; :::