`
ericbaner
  • 浏览: 177041 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

检测Android系统目前已安装的应用是否可响应特定Intent

 
阅读更多
/**
 * Indicates whether the specified action can be used as an intent. This
 * method queries the package manager for installed packages that can
 * respond to an intent with the specified action. If no suitable package is
 * found, this method returns false.
 *
 * @param context The application's environment.
 * @param action The Intent action to check for availability.
 *
 * @return True if an Intent with the specified action can be sent and
 *         responded to, false otherwise.
 */
public static boolean isIntentAvailable(Context context, String action) {
    final PackageManager packageManager = context.getPackageManager();
    final Intent intent = new Intent(action);
    List<ResolveInfo> list =
            packageManager.queryIntentActivities(intent,
                    PackageManager.MATCH_DEFAULT_ONLY);
    return list.size() > 0;
}

 

 

可以这样用:

 

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    final boolean scanAvailable = isIntentAvailable(this,
        "com.google.zxing.client.android.SCAN");

    MenuItem item;
    item = menu.findItem(R.id.menu_item_add);
    item.setEnabled(scanAvailable);

    return super.onPrepareOptionsMenu(menu);
}

 

 

也可以捕获 ActivityNotFoundException异常,当调用 startActivity()的时候, 来判断是否支持一个Intent。

 

但用上述的方法,可以让你事先得到判断结果,从而对特定UI作出相应的定制,如不可用,提示用户去安装应用等等,

分享到:
评论

相关推荐

    Android应用源码之Intent_Intent.zip

    在Android开发中,Intent是一个非常核心且至关重要的组件,它扮演着应用程序内部或应用程序之间通信的桥梁角色。Intent主要用于启动活动(Activity)、服务(Service)或者广播接收器(BroadcastReceiver),并传递...

    安卓Android源码——Intent.rar

    总之,“安卓Android源码——Intent.rar”这个资源对于想要深入了解Android开发的开发者来说非常有价值,它涵盖了Intent的基本概念、工作原理和实际应用,结合源码分析可以提升开发者对Android系统级组件的理解。

    Android卸载应用和安装应用的广播

    本文将详细讲解如何利用广播接收器(BroadcastReceiver)来监听和响应应用的安装与卸载事件。 首先,让我们了解什么是广播接收器。在Android中,BroadcastReceiver是一种特殊的组件,它能监听系统或应用程序发送的...

    Android中关于Broadcast、Intent 的应用

    在Android系统中,Broadcast(广播)和Intent是两个至关重要的组件,它们构成了应用程序间通信的基础。Broadcast用于在应用程序之间传递消息,而Intent则扮演着触发操作的“信使”角色。理解并熟练运用这两个概念,...

    安卓Android源码——Intent1.rar

    本压缩包文件“安卓Android源码——Intent1.rar”很可能包含了有关Intent的源代码分析和示例,帮助开发者深入了解Intent的工作机制。 首先,Intent 的基本结构分为两部分:Action 和 Data。Action 定义了 Intent 的...

    Android中intent的使用

    在AndroidManifest.xml文件中,我们需要为每个组件声明其能够处理的Intent过滤器,这样系统才能知道哪些组件可以响应特定的Intent。 总结起来,Intent在Android开发中扮演着至关重要的角色,它不仅连接了应用内的...

    Android Intent Filter用法

    在Android应用开发中,Intent Filter是一个至关重要的概念,它用于定义一个组件(如Activity或BroadcastReceiver)能够响应的Intent类型。Intent Filter就像一个过滤器,筛选出应用可以处理的特定操作,使得系统能够...

    android----intent

    在Android操作系统中,Intent是一种强大的组件间通信机制,它用于启动其他应用程序组件,如Activity、Service,甚至BroadcastReceiver。Intent不仅能够传递数据,还能在应用的不同部分之间建立连接,是Android开发中...

    android各组件详解- Intent.

    标题与描述均指向了“Android各组件详解——Intent”,这一主题深入探讨了...无论是跨组件通信、启动服务还是发送广播,Intent都扮演着不可或缺的角色,掌握其使用技巧对于提升应用程序的灵活性和响应性至关重要。

    Android Intent切换.zip

    在实际开发中,两者都有其应用场景,例如启动特定的Activity,或者响应系统广播事件。 总结一下,"Android Intent切换.zip"包含的资料提供了关于Intent使用的实例,这对于理解和掌握Android中组件间的交互至关重要...

    Android应用源码之7.Intent初级学习.zip

    在Android应用开发中,Intent是连接应用程序组件的重要桥梁,它是一种消息传递机制,用于在不同的组件之间传递数据和启动操作。本资料“Android应用源码之7.Intent初级学习.zip”显然是一个专注于讲解Intent基础概念...

    android intent 应用实例详解

    Android 系统通过 Intent 分发器(IntentResolver)来解析 Intent,找到最合适的组件来响应。如果 Intent 匹配多个组件,用户可能需要做出选择,或者系统会根据优先级选择一个。 5. **自定义 Intent**: 开发者...

    Android应用源码之Intent_ComponentSample_Intent.zip

    在Android应用开发中,Intent是连接应用程序各个组件的桥梁,它是Android系统中一个非常重要的概念。Intent用于在组件之间传递消息,启动或激活服务,以及启动活动等操作。本源码示例"Intent_ComponentSample_Intent...

    android中intent使用示例

    在AndroidManifest.xml中,我们可以为Activity或Service定义Intent Filter,以响应特定的隐式Intent。例如,为了响应上面的Web浏览Intent,我们可以在Activity声明中添加: ```xml &lt;intent-filter&gt; &lt;action ...

    2011.09.07(2)——— android 跨进程通信之隐式intent

    在跨进程通信中,隐式Intent特别有用,因为它允许任何应用提供服务,只要它们声明了能处理特定Intent。例如,一个应用可以通过隐式Intent请求其他应用打开一个URL,播放音乐,或者执行其他操作,而无需知道具体哪个...

    Android 学习(26)Intent 分类

    本篇文章将深入探讨Intent的分类及其在Android应用中的作用,同时也会提及Broadcast Receiver,它是Android系统中处理全局广播的重要组件。 首先,我们来看Intent的两大分类:显式Intent和隐式Intent。 1. **显式...

    Android4.4静默安装应用的一种实现方式

    在Android系统中,通常应用程序的安装需要用户交互,即用户点击安装按钮,然后系统会显示安装进度并请求必要的权限。然而,在某些特定场景下,如企业级设备管理或自动化测试中,静默安装(Silent Installation)是...

    Android代码-Intent切换.zip

    在Android开发中,Intent是一种非常重要的组件,它用于在应用程序的不同组件之间传递消息,实现活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)以及内容提供者(ContentProvider)之间的交互。...

    android.intent.action.TIME_TICK

    在Android系统中,广播接收器(Broadcast Receiver)是一种重要的组件,它允许应用程序对全局系统事件做出响应。在给定的标题"android.intent.action.TIME_TICK"中,涉及的是一个特定的系统广播,当系统时间每分钟...

    android 显示系统应用和调用

    2. **获取系统应用列表**:Android提供了`PackageManager`类,通过`getInstalledPackages()`方法可以获取所有已安装的应用信息。你需要过滤出系统应用,通常通过检查`PackageInfo`对象中的`isSystemApp()`属性来实现...

Global site tag (gtag.js) - Google Analytics