我实施了从我的应用程序发送电子邮件。
我使用this quesion on SO作为指导来实现这一点,请注意,在答案中有人说使用setType("message/rfc822");
因为它会过滤掉所有其他听取ACTION_SEND
意图的电子邮件客户端。
我的问题是我的galaxy tab 10.1仍然有两个应用程序可以听取意图,因此弹出窗口仍会打开,询问我想要使用哪个电子邮件客户端。 (gMail应用程序或默认的eMail应用程序)。我无法卸载,因此列表不会弹出,但我也不想。
有没有办法强制Android立即使用列表中的第一个?那么用户可以跳过弹出对话框吗?
这是我目前的代码:
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.notes_from_pf));
i.putExtra(Intent.EXTRA_TEXT , context.getString(R.string.mail_message));
try {
startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(context, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:1)
查询应用程序,获取注册为发送操作的应用程序列表,然后选择一个,创建意图,设置类名并启动您的意图并完成
答案 1 :(得分:0)
答案 2 :(得分:0)
Intent email = new Intent(Intent.ACTION_SEND);
email.setType("text/plain");
email.putExtra(Intent.EXTRA_EMAIL, "" );
email.putExtra(Intent.EXTRA_SUBJECT, "");
email.putExtra(Intent.EXTRA_TEXT, prsnname + " : "+ data +"\n\n" + linkdata);
try
{
activity.startActivity(Intent.createChooser(email, "Send mail..."));
}
catch (android.content.ActivityNotFoundException ex)
{
Toast.makeText(activity, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}