0

我正在尝试检查是否有任何活动可以处理我的意图:“ 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应用程序启动。这很好,但我无法预测:(谢谢你的回答:)

4

1 回答 1

0

您没有intent在第一个片段中显示,它应该可以工作,因为它应该是查询的方式:https ://code.google.com/p/zxing/source/browse/trunk/android-integration/src/ com/google/zxing/integration/android/IntentIntegrator.java#288

我敢打赌你已经设置了一个intent限制它的包。

检查intent你要启动的。

(PS ZXing 不是公司)

于 2013-09-03T07:32:33.180 回答