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

时间:2011-11-04 12:41:06

标签: java android barcode barcode-scanner

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

提前致谢!

4 个答案:

答案 0 :(得分: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
        }
    }
}

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

为了避免崩溃并简化您的工作,ZXing有provided a utility class您可以将其集成到您的应用程序中,以便在没有它的情况下将用户重定向到Android Market,从而使ZXing的安装更加顺畅已安装。

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

答案 1 :(得分:10)

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

答案 2 :(得分:6)

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

RedLaser has an api,但如果您在制作中使用它,则必须付费。当我试用它时,我发现它并不比Zebra Crossing有了惊人的改进。当然不适合price

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

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

答案 3 :(得分:5)

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

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

相关问题