2013-02-28 19 views
0

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

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

我知道我可以为try/catch块中最受欢迎的应用程序提供一些意图,并希望它打开一个用户使用,但这似乎非常可怕。像startActivity(EMAIL_INBOX)或意图(VIEW_CALENDAR)或类似的东西照顾它没有真正的包名称吗?

感谢您的阅读。

回答

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); 
+0

给它一个尝试,它的工作,感谢一堆:)另外一个问题,但它使得用户每次选择他们想要的应用程序,即使他们点击“始终使用此应用程序”按钮。你知道如何让它保存默认值/使用默认值,如果用户之前选择了一个? – NathanTempelman 2013-03-01 16:41:47

+1

啊,我的道歉。 makeMainSelectorActivity()将强制选择对话框。我已经更新了我的答案。 – 2013-03-01 17:11:42

+0

如果没有,那么如果用户没有选择默认值,它是否仍然会将选择对话框拉起来? – NathanTempelman 2013-03-01 20:37:31

相关问题