ACTION_SEND力电子邮件发送(ACTION_SEND force sending with

2019-07-29 02:44发布

每次我创建一个动作从我的应用程序发送电子邮件时,它会提示很多选项,包括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);

截图的时候我推出这个会发生什么

Answer 1:

尝试的setType message/rfc822 ,而不是text/plain



Answer 2:

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:"));


Answer 3:

我想你应该改变setType

i.setType("message/rfc822") ;


Answer 4:

它会显示安装Android手机上所有可用的应用程序,它可以进行共享或网页视图链接发送给他人。 像 - Gmail中,脸谱,国际海事组织,WhatsApp的,信使等。

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[]{"something@gmail.com"});

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);
}


Answer 5:

只要您使用ACTION_SEND类型text/plain ,它会显示所有的有效选项。 但是,如果你愿意,你可以设计出通过编程做过滤仅显示Gmail或其他邮件客户端你自己的对话窗口。

顺便说一句,为什么你甚至不需要这个窗口时,你只是想使用Gmail?



Answer 6:

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..."));

你可以试试这个:::::



Answer 7:

Intent.setType("plain/text");

起初,当我看到这个我虽然马上这是一个错误,它的意思是text/plain ,但其实这是正确的方式在应用程序列表仅显示电子邮件客户端。

试一试,看看自己。



Answer 8:

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);

试试这个;:::



文章来源: ACTION_SEND force sending with email