嘿,目前我的代码实现了" 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?)以及我如何防止它截断未来的扫描?
答案 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