检查意图是否可以处理.没有为中兴的意图工作



我正在尝试检查是否有任何活动,可以处理我的意图:"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

主要问题是,如果我只安装了QRDroid,而条形码扫描仪则没有。这两个条件的结果都是真的(没有任何应用程序可以处理)。但如果我运行这个意图:

Intent intentScan = new Intent("com.google.zxing.client.android.SCAN");
fragment.startActivityForResult(intentScan, RequestCodes.REQUEST_CODE_SCAN);

QR Droid应用程序启动。这很好,但我无法预测:(感谢回答:)

您没有在第一个代码段中显示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不是一家公司)

最新更新