基本上我有一个热门电子邮件应用程序包名列表,我想创建一个选择器来启动发送电子邮件意图,你可以参考this 问题,这里他使用包管理器只是gmail,我想做一个包列表
答案 0 :(得分:2)
我想要做的是模拟桌面行为,当您点击打开outlook / gmail客户端的电子邮件链接时,将to字段设置为电子邮件ID,但除此之外我想让用户选择电子邮件启动的应用程序
startActivity(new Intent(Intent.ACTION_SENDTO)
.setData(Uri.parse("mailto:"+yourEmailAddressGoesHere)));
将yourEmailAddressGoesHere
替换为"电子邮件ID"。
如果用户有多个电子邮件客户端,并且用户未选择默认电子邮件客户端,则用户将自动获得选择器。如果用户只有一个电子邮件客户端,或者选择了默认的电子邮件客户端,则会引导用户进行某些活动,以便将邮件撰写到指定的电子邮件地址。
答案 1 :(得分:2)
创建意图添加设置其uri数据
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:"));
intent.putExtra(Intent.EXTRA_EMAIL, addresses);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
然后创建选择器意图。当您希望用户每次发送电子邮件时都选择他想要的应用程序时,此功能非常有用。如果您想选择一个应用并将其设为默认应用,您可以省略选择器并直接启动意图
Intent chooser = Intent.createChooser(intent, "Chooser title");
然后检查是否至少有一个活动可以处理电子邮件意图
if(intent.resolveActivity(getPackageManager()) != null){
// there are apps, start the chooser
startActivity(chooser);
} else {
// no apps found
Toast.makeText(this, "No apps found", Toast.LENGTH_SHORT).show();
}