“com.google.zxing.client.android.SCAN”会在扫描时删除前导零

时间:2014-02-24 21:37:51

标签: android zxing

嘿,目前我的代码实现了" com.google.zxing.client.android.SCAN"将条形码扫描到我的应用程序中的意图方法

public void scanBarCode(View view) {
    Intent intent = new Intent("com.google.zxing.client.android.SCAN");
    intent.putExtra("SCAN_MODE", "PRODUCT_MODE");  

    startActivityForResult(intent, REQUEST_BARCODE);

    Toast toast = Toast.makeText(this, "Start scanning Barcode", Toast.LENGTH_SHORT);
    toast.show();
}
但是,经过测试,我发现条形码扫描器会从扫描中删除前导零。所以任何带有0XXXXXXXX的条形码只能在我的应用程序中读取为XXXXXXXXX。反正有没有看到为什么会发生这种情况? (也许条码扫描器将它视为一个int?)以及我如何防止它截断未来的扫描?

2 个答案:

答案 0 :(得分:0)

如果您的条形码是UPC_A,UPC_E,EAN_13,EAN_8或RSS_14,它应该正常工作。如果您需要支持CODE_39,CODE_93,CODE_128或ITF条形码格式,请尝试将您的Intent额外“SCAN_MODE”值设置为“ONE_D_MODE”,看看它是否适合您。

答案 1 :(得分:0)

您可以使用DecimalFormat班级http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

System.out.println(  new DecimalFormat("000000000").format("000000001")  );

这种模式需要9位整数,因为使用0而不是#,它将保留0