Android zxing库条码扫描器强制在当前应用程序上打开库

Android zxing库条码扫描器强制在当前应用程序上打开库,android,zxing,Android,Zxing,我有一个android应用程序,其中集成了zxing条形码扫描仪。它工作正常,但只有一个问题: 我有另一个条形码扫描仪,所以当我的应用程序调用条形码扫描仪时,它总是要求我选择应用程序 我只是想强迫zxing打开我的应用程序 有什么解决方案吗?您如何称呼Zxing条形码扫描仪?如果您将其集成到应用程序中,它不应该使用intentPicker让用户选择一个。你应该可以直接打电话给它。 但如果没有,您可以做类似的事情: Intent zxing = getZxingIntent(this); zxin

我有一个android应用程序,其中集成了zxing条形码扫描仪。它工作正常,但只有一个问题: 我有另一个条形码扫描仪,所以当我的应用程序调用条形码扫描仪时,它总是要求我选择应用程序

我只是想强迫zxing打开我的应用程序


有什么解决方案吗?

您如何称呼Zxing条形码扫描仪?如果您将其集成到应用程序中,它不应该使用intentPicker让用户选择一个。你应该可以直接打电话给它。 但如果没有,您可以做类似的事情:

Intent zxing = getZxingIntent(this);
zxing.putExtra( "com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE"); 
startActivityForResult(zxing, 0);
以及获取ZxingIntent的方法:

public static Intent getZxingIntent(Context context) {
    Intent zxingIntent = new Intent("com.google.zxing.client.android.SCAN");
    final PackageManager pm = context.getPackageManager();
    List<ResolveInfo> activityList = pm.queryIntentActivities(zxingIntent,
            0);
    for (int i = 0; i < activityList.size(); i++) {
        ResolveInfo app = activityList.get(i);
        if (app.activityInfo.name.contains("zxing")) {
            zxingIntent.setClassName(app.activityInfo.packageName,
                    app.activityInfo.name);
            return zxingIntent;
        }
    }
    return zxingIntent;
}
publicstaticintent getZxingIntent(上下文){
Intent-zxingIntent=newintent(“com.google.zxing.client.android.SCAN”);
final-PackageManager pm=context.getPackageManager();
List activityList=pm.querytentActivities(zxingIntent,
0);
对于(int i=0;i

编辑: 当您发送Zxing意向时,它会搜索条形码扫描仪,因此,如果您有另一个条形码扫描仪,它将创建一个选择器。如果Zxing在设备上不可用,您将无法使用它。所以你也应该检查一下。但无论如何,我上面提供的截图应该可以用来确定Zxing在设备上是否可用。(但是我没有机会测试它,所以您可能需要更改一下。)

您可以试试这个

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.setPackage(getPackageName());
            intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
            startActivityForResult(intent, 0);

检查您的清单文件并尝试更改意图过滤器。如何更改当前的过滤器这是我如何调用intent intent=new intent(“com.google.zxing.client.android.SCAN”);intent.putExtra(“com.google.zxing.client.android.SCAN.SCAN_MODE”,“QR_码_MODE”);startActivityForResult(意向,0);我假设您的应用程序正在运行,并且您正在尝试使用截取的代码启动Zxing?如果是这样,它应该可以正常工作。如果集成正确,则不应存在任何意图选择器。