我正在尝试检查是否有任何活动可以处理我的意图:“ com.google.zxing.client.android ”。可以处理这个的主要应用程序是ZXing 公司的BarCode Scanner,但QR Droid也可以。
我正在使用这个:
List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() == 0) //no activity can handle that
和这个:
Intent test = new Intent(Intent.ACTION_VIEW,
Uri.parse("com.google.zxing.client.android"));
if (context.getPackageManager().resolveActivity(test, 0) == null)
//no activity can handy that
主要问题是,如果我只安装了QR Droid而没有安装BarCode Scanner。这两个条件的结果为真(没有任何应用程序可以处理)。但如果我运行那个意图:
Intent intentScan = new Intent("com.google.zxing.client.android.SCAN");
fragment.startActivityForResult(intentScan, RequestCodes.REQUEST_CODE_SCAN);
QR Droid应用程序启动。这很好,但我无法预测:(谢谢你的回答:)