如何创建条码扫描器(Android)?

Zie*_*iem 16 java android barcode barcode-scanner

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

提前致谢!

小智 26

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

最简单的方法是从您的应用程序中调用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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

按下链接到mScan的按钮将直接启动到ZXing条形码扫描仪屏幕(如果未安装ZXing,则会崩溃).一旦识别出条形码,您将在您的活动中收到结果,此处在内容变量中.

为了避免崩溃并简化您的工作,ZXing 提供了一个实用程序类,您可以将其集成到您的应用程序中,通过将用户重定向到Android Market(如果他们尚未安装),可以使ZXing的安装更加顺畅.

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


iva*_*tod 10

您可以使用适用于Android的现有Zebra Crossing条形码扫描仪,网址为:http://code.google.com/p/zxing/.通常,您可以通过意图调用它,例如:http://code.google.com/p/zxing/wiki/ScanningViaIntent.

  • 不幸的是,这个库对于被用作应用程序中包含的库jar文件并不是特别友好,但您仍然可以手动"重新打包"它并尝试仅使用您需要/想要的部分.但是,正如我所说,它主要是通过意图使用,并且将它"嵌入"到您的应用程序中有点困难.也许有人会有不同的建议. (2认同)

Ale*_*ski 6

Zebra Crossing是最好的java 1D或2D条形码解码器或编码器.很多人使用它,它已经成为android的事实上的标准.这里也有一个健康的嗡嗡声.

RedLaser 有api,但如果你在生产中使用它,你将不得不支付.当我试用它时,我发现它并不比Zebra Crossing有了惊人的改进.当然不是为了价格.

jjil 做条形码,但项目中只有3个提交者,我自己从未使用它,所以我不知道该告诉你什么.它的来源肯定是可读的.

一旦你开始阅读,你会发现由于图像模糊,噪音,失真,奇怪的角度等等,读者都很难实现.因此,如果您想要可靠的东西,您可能希望使用社区维护的库.


NOB*_*NAN 5

您可以使用zbar库.从以下网址下载:http: //sourceforge.net/projects/zbar/files/AndroidSDK/

我认为这比zxing更快更准确.