android – 如果安装了Google护目镜,则通过意图使用Zxing的问题

我正在使用以下代码从Zing调用条形码扫描程序应用程序

public Button.OnClickListener mScan = new Button.OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
        startActivityForResult(intent, 0);
    }
};

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
        }
    }
}

问题是如果没有安装条形码扫描仪应用程序,并且用户有任何其他扫描应用程序,如谷歌护目镜,我没有得到所需的结果回来.这打破了我的应用程序.

有什么办法可以阻止这个吗?

解决方法:

是.使用值“com.google.zxing.client.android”调用Intent.setPackage().这将迫使它仅接受条形码扫描仪的响应.

但请注意,这将使其他应用无法响应,例如条形码扫描器.

上一篇:Ubuntu 下使用 python3 制作读取 QR 码


下一篇:Lintcode 986. 2D战舰