【发布时间】:2012-06-15 07:01:21
【问题描述】:
我实现了从我的应用程序发送电子邮件。
我使用this quesion on 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();
}
【问题讨论】:
-
是什么让您认为用户想要“列表中的第一个”?
-
此外,您正在使用的代码(由
Intent.createChooser()调用提供)强制用户必须做出选择,即使他们设置了较早的默认邮件客户端。为什么你一边强迫用户做出选择,一边抱怨用户必须做出选择? -
@CommonsWare 我完全忽略了...
-
原来如此,我现在只被问过一次,可以选择默认选择这个客户端...这对我来说没问题,现在感觉有点愚蠢...
标签: android email android-intent