0

我实现了从我的应用程序发送电子邮件。

我使用SO 上的这个问题作为实现这一目标的指南,请注意,在有人说要使用的答案中,setType("message/rfc822");因为它会过滤掉所有其他听取ACTION_SEND意图的电子邮件客户端。

我的问题是我的 Galaxy Tab 10.1 仍然有两个应用程序来监听意图,所以仍然会打开一个弹出窗口,询问我要使用什么电子邮件客户端。(gMail 应用程序或默认的电子邮件应用程序)。我不能卸载一个,所以列表不会弹出,但我也不想。

有没有办法强制 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();
}
4

3 回答 3

1

查询应用程序,获取注册发送操作的应用程序列表并选择一个,创建一个意图,设置类名并启动你的意图,你就完成了

于 2012-06-12T11:54:17.330 回答
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();
}
于 2012-06-12T12:22:02.133 回答
0

如果您希望找到可以处理意图的应用程序,您可以使用:

获取包管理器()。查询意图活动...

当你找到你想要的应用程序时,设置意图的包以匹配应用程序之一。

于 2012-06-12T12:10:30.300 回答