读书人

检测Android系统当前已安装的应用是否

发布时间: 2012-07-18 12:05:40 作者: rapoo

检测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;}

?

?

可以这样用:

?

@Overridepublic 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

热点推荐