使用zxing在Android中读取3 of 9扩展条形码

3

我正在研究用一个简洁的安卓应用程序替换昂贵的定制条形码阅读器。

我在调用zxing包,可以读取大多数的条形码,但无法读取Code 3 of 9扩展码,而这是我们公司当前业务的标准条形码(已有超过2000个条形码在使用)。

是否有一种方法可以扩展zxing包以包括Code 3 of 9 Extended条形码?

我的当前代码可以打开谷歌眼镜应用程序,并通过Toast调用成功显示QR码和大多数1D条形码信息,我尝试了明确定义要读取哪些代码的方法,但现在注释掉了那一行代码,因为没有定义语句时,扫描器应该读取所有可能的代码(仅用于测试):

mGetScanButton = (Button) findViewById(R.id.buttonScan);
mGetScanButton.setOnClickListener(new View.OnClickListener() {


        @Override
        public void onClick(View v) {
             Intent intent = new Intent("com.google.zxing.client.android.SCAN");
                //intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A,QR_CODE" );
                startActivityForResult(intent, 0);
        }

});

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            //  The Intents Fairy has delivered us some data!
            String contents = intent.getStringExtra("SCAN_RESULT");
            //code below will be deleted after testing
            //String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            // Toast call to display code when read
            Toast.makeText(this, contents, Toast.LENGTH_LONG).show();
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
        }
    }

}

非常感谢您的帮助,我希望不必要求员工更换所有条形码……尽管这可能是必要的!
代码39扩展示例 - 编码数字为25。
编辑:我的应用程序实际上是打开了Google Goggle应用程序而不是zxing的Barcode Scanner应用程序!我现在已安装正确的Barcode Scanner应用程序,它可以正常工作。非常感谢大家!

3
可以提供一个 "Barcode 3 of 9 extended" 的样本图片吗? - BlueSword
1
Code 3 of 9也被称为Code 39。ZXing已经支持它,并且默认情况下应该是启用的。您能否使用Barcode Scanner应用程序扫描您的条形码? - Enrico
Enrico,谢谢你。我没有安装正确的应用程序,因此意图调用使用的是Google Goggles,它似乎不支持Code 39 Extended。 - DazEvans
1个回答

0

我的应用实际上打开了谷歌眼镜应用程序而不是zxing的条形码扫描应用程序!我现在已经安装了正确的条形码扫描应用程序,它能够正常工作。非常感谢大家!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接