有没有办法找到在Android中打开特定文件的默认应用程序?

有没有办法找到在Android中打开特定文件的默认应用程序?,android,android-intent,Android,Android Intent,我知道我可以使用PackageManager.QueryInputActivities()获取ResolveInfo对象的列表。但是,如果用户为特定操作(或文件类型)设置了默认应用程序,该怎么办。是否有办法在检索到的ResolveInfo对象中查找将哪个应用程序设置为默认操作 提前感谢您可以使用PackageManager上的resolveActivity()来了解如果在Intent上调用startActivity()将启动什么。如果返回活动选择器,那么您知道有多个选项,并且没有一个设置为首选应

我知道我可以使用PackageManager.QueryInputActivities()获取ResolveInfo对象的列表。但是,如果用户为特定操作(或文件类型)设置了默认应用程序,该怎么办。是否有办法在检索到的ResolveInfo对象中查找将哪个应用程序设置为默认操作


提前感谢

您可以使用
PackageManager
上的
resolveActivity()
来了解如果在
Intent
上调用
startActivity()
将启动什么。如果返回活动选择器,那么您知道有多个选项,并且没有一个设置为首选应用程序,因此会出现选择器。另外请注意,在美国的一些HTC设备上,对于一些
意图
结构,您将始终获得HTC提供的中介活动类,以了解更多详细信息。

感谢您的回答,以及您在书中分享的所有智慧。我会试试这个。另外,我如何检查返回的ResolveInfo是否用于选择器活动?@febinkk:查看
ResolveInfo
activityInfo
。我忘记了选择器活动的名称和包是什么,但是如果你稍微试验一下,它应该是可以识别的。再次感谢,我会找到名称和包,我担心硬编码名称和包不是一个好主意。但现在我想这是不可避免的。@febinkk:是的,我不知道除了硬编码之外,你如何确定它是选择器。另一个选项是查看
getPreferredActivities()
,并确定您想要的内容是否在其中。