当我想在设备上发送一些带有电子邮件客户端的文本时,在我在意图中设置电子邮件文本之前,是否可以看到选择了哪个电子邮件客户端(例如Gmail或Yahoo邮件)?
答案 0 :(得分:2)
不幸的是,没有。当您启动选择器意图时,由用户决定去哪里/使用什么。在启动意图之前必须设置所有数据,并且在活动返回之前您无法控制。换句话说,您不能根据他们在对话框中的选择来影响消息的文本。
答案 1 :(得分:0)
使用默认意图选择器无法完成此操作。但是,您可以查询哪些活动可以响应您的意图:
PackageManager manager = getPackageManager();
List<ResolveInfo> ri = manager.queryIntentActivities(intent,
PackageManager.GET_RESOLVED_FILTER);
然后,您可以继续在列表中显示它,观察用户做出的选择并执行一些特定于选择的意图。
答案 2 :(得分:0)
您可以明确地调用所需的组件来进行服务。我想使用gmail发送电子邮件,如
public void sendGmail(Activity activity, String subject, String text) {
Intent gmailIntent = new Intent();
gmailIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
gmailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
gmailIntent.putExtra(android.content.Intent.EXTRA_TEXT, text);
try {
activity.startActivity(gmailIntent);
} catch(ActivityNotFoundException ex) {
// handle error
}
}
不要忘记添加互联网权限