在Android上启动默认电子邮件和日历

时间:2013-02-28 16:21:32

标签: android android-intent android-calendar

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

当用户去打开一个网站时,他们会给出一个选择,chrome / browser /无论如何,或者如果你选择了默认设置,那么它就是这样。有没有办法打开用户的默认电子邮件/日历应用程序?

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

感谢阅读。

1 个答案:

答案 0 :(得分:1)

您可以根据需要使用操作ACTION_MAIN和类别CATEGORY_APP_CALENDARCATEGORY_APP_EMAIL制作意图。

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

例如:

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

您还可以使用意图来执行特定操作,例如以下内容以启动发送电子邮件的电子邮件应用程序:

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);