Can I Use this Intent?

总结:检测系统中是否有Activity可以使用Intent的方法——Can I Use this Intent?

以下方法检测检测系统中是否有Activity可以使用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);
}

以上这种技术也常被用于在应用启动时提醒用户是否安装缺失包,你可以使用该技术将用户直接重定向上Android Market.

详情请见: http://developer.android.com/resources/articles/can-i-use-this-intent.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值