0

我知道如何根据包名称启动一项活动,但对于电子邮件和日历之类的东西,人们通常会使用四五个专有或下载的应用程序之一。如果我想要一个按钮将用户带到他们的默认日历或电子邮件,有没有办法很好地做到这一点?

当用户去打开一个网站时,他们有一个选择,chrome/browser/whatever,或者如果你选择了一个默认值,它就会去那个。有没有办法通过打开用户的默认电子邮件/日历应用程序来做到这一点?

我知道我可以在 try/catch 块中为最流行的应用程序提供一堆意图,并希望它打开用户使用的一个,但这看起来非常丑陋。像 startActivity(EMAIL_INBOX) 或 intent(VIEW_CALENDAR) 或类似的东西,在没有实际包名称的情况下为您处理它?

谢谢阅读。

4

1 回答 1

2

ACTION_MAIN您可以使用操作和类别CATEGORY_APP_CALENDAR或根据需要制作 Intent CATEGORY_APP_EMAIL

将操作设置为 ACTION_MAIN 会启动应用程序,就像用户从主页选择它一样,设置类别会将他们的选项限制为提供该类别的应用程序。有关更多选项,请参阅Intent 类的标准类别部分。

例如:

Intent calIntent = new Intent(Intent.ACTION_MAIN);
calIntent.addCategory(Intent.CATEGORY_APP_CALENDAR);

您还可以将意图用于特定操作,例如通过发送电子邮件的操作启动电子邮件应用程序:

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
于 2013-02-28T16:31:28.623 回答