android – 我可以测试一个应用程序是否可以处理意图,而无需启动它?

具体来说,我试图弄清楚是否有应用程序来处理市场意图,但我想要一个通用案例解决方案.

我知道如果您执行此类操作,您可以判断是否有可用于处理意图的应用程序.我正在尝试做一些实际上没有启动意图的事情.关于我可能做什么的任何想法?

try
{
    String strURL="market://details?id="+thePackage;
    Intent the_intent = new Intent(Intent.ACTION_VIEW, Uri.parse(strURL));
    the_intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
    startActivity(the_intent)

}
catch (ActivityNotFoundException e)
{
    String strUrl="https://play.google.com/store/search?c=apps&q="+thePackage;

    Intent the_intent = new Intent(Intent.ACTION_VIEW, Uri.parse(strUrl));
    the_intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
    startActivity(the_intent)
}

我想要的是一个不涉及实际启动活动的解决方案.我想要做到这一点有几个原因,但我想我不是唯一一个想到这个原因的人,似乎必须有办法……

解决方法:

使用PackageManager和queryIntentActivities()或resolveActivity().前者将返回与要与startActivity()一起使用的Intent匹配的事物列表.后者将在没有匹配时返回null或者是“最佳匹配”的Intent(如果存在多个匹配,则可以是选择器活动).

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...