How do you call your Zxing Barcode Scanner? If you integrated it into your app, it shouldn't use intentPicker to let user choose one. You should be able to call it directly.
But if not, you can do something similar to this:
Intent zxing = getZxingIntent(this);
zxing.putExtra( "com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(zxing, 0);
And the method to get 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;
}
Edit:
As refered this question when you send Zxing intent it searches for a barcode scanner, so if you have another barcode scanner it will create a picker. And if Zxing is not available on device you'll not be able to use it. So you should check it also. But anyway, the snipped that i provided above should work to find if Zxing is available on device. (However i didn't have chance to test it, so you may need to change a bit.)