【问题标题】:"com.google.zxing.client.android.SCAN" removes leading zeroes on scan“com.google.zxing.client.android.SCAN”在扫描时删除前导零
【发布时间】:2014-02-25 07:36:03
【问题描述】:

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

【问题讨论】:

  • 欢迎来到 Stack Overflow!请注意,标签是独立的。也就是说,您不能组合多个标签来创建一个概念。标签[barcode][scanner] 一起与单个[barcode-scanner] 标签不同。标签不是关键字,因此在标签列表中塞满与您的问题相同的词(条形码、扫描仪、前导、零)将无助于对其进行分类。请务必阅读选择标签时出现的说明!

标签: android zxing


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    此模式需要一个 9 位整数,并且由于使用 0 而不是 # 它将保留 0

    【讨论】:

      猜你喜欢
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 2018-10-14
      • 1970-01-01
      • 2022-12-18
      相关资源
      最近更新 更多