【问题标题】:How to create barcode scanner (Android)?如何创建条码扫描器(Android)?
【发布时间】:2011-12-21 23:58:04
【问题描述】:

谁能告诉我创建条形码扫描仪应用程序(适用于 Android)是否困难? OpenCV 库是好的开始吗?我在哪里可以找到清楚地解释如何读取条形码的算法?我会感谢所有关于这个主题的好材料!

提前致谢!

【问题讨论】:

  • ZXing 库可以在 Android 上扫描条码。这可能是一个起点。

标签: java android barcode barcode-scanner


【解决方案1】:

您可以使用现有的 Android 版 Zebra Crossing 条码扫描器,网址为:http://code.google.com/p/zxing/。通常的想法是您可以通过意图调用它,例如此处的示例:http://code.google.com/p/zxing/wiki/ScanningViaIntent

【讨论】:

  • 比方说,我不想使用为我做所有事情的高级库。
  • 不幸的是,这个库对于仅用作包含在应用程序中的库 jar 文件并不是特别友好,但您仍然可以手动“重新打包”它并尝试仅使用您需要的部分/想。但是,正如我所说,它主要是通过意图使用的,并且将其“嵌入”到您的应用程序中有点困难。也许有人会有不同的建议。
【解决方案2】:

Zebra Crossing 是最好的 java 1D 或 2D 条形码解码器或编码器。很多人都在使用它,它已经成为安卓的事实标准。这里也有a healthy buzz about it

RedLaser has an api,但如果您在生产中使用它,则需要付费。当我试用它时,我并没有发现它比 Zebra Crossing 有惊人的改进。当然不是price

jjil does barcodes 但该项目只有 3 个提交者,而且我自己从未使用过它,所以我不知道该告诉你什么。它的source 肯定是可读的。

一旦您start reading,您会发现由于图像模糊、噪点、失真、奇怪的角度等等,读者很难实现。因此,如果您想要可靠的东西,您可能想要使用社区维护的库。

【讨论】:

    【解决方案3】:

    ZXing 项目提供了一个独立的条形码阅读器应用程序——通过 Android 的 Intent 机制——可以被其他希望集成条形码扫描的应用程序调用。

    最简单的方法是从您的应用程序中调用 ZXing SCAN Intent,如下所示:

    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
            }
        }
    }
    

    按下链接到 mScan 的按钮将直接启动到 ZXing 条码扫描仪屏幕(如果未安装 ZXing,则会崩溃)。识别出条形码后,您将在 Activity 中收到结果,位于 contents 变量中。

    为了避免崩溃并为您简化事情,ZXing 提供了provided a utility class,您可以将其集成到您的应用程序中,以使 ZXing 的安装更顺畅,如果用户尚未安装它,则将其重定向到 Android Market .

    最后,如果您想将条码扫描直接集成到您的应用程序中,而不需要安装单独的 ZXing 应用程序,那么它是一个开源项目,您可以这样做! :)

    【讨论】:

      【解决方案4】:

      您可以使用 zbar 库。从以下位置下载: http://sourceforge.net/projects/zbar/files/AndroidSDK/

      我觉得这个比zxing更快更准确。

      【讨论】:

      • 你能帮帮我吗?请回答我的问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多