2010-04-09 128 views
20

我想为Android创建一个应用程序,它可以扫描条形码,获取条形码中包含的信息,然后以某种方式使用该信息。Android - 条码扫描,选项?斑马线?

我不知道如何创建条形码扫描器,所以我去谷歌搜索,似乎Zxing是最常用的方式来实现一个应用程序的条形码扫描仪。

几个环节:


http://code.google.com/p/zxing/

http://awalkingcity.com/blog/2008/08/25/qr-codes-made-easy-in-android/

Using ZXing to create an android barcode scanning app


但是我在斑马线涉及不必提示用户去市场上发现的样本并安装zxing条形码扫描器,以便我的应用程序可以在需要时调用条形码扫描器,然后条形码扫描器将信息返回给我的应用程序。

虽然这对我来说是一个很好的起点,但我想知道是否有其他选项可以让我在自己的应用程序中嵌入条形码扫描器,而无需提示用户下载二级应用程序?

+0

http://stackoverflow.com/questions/2050263/using-zxing-to-create-an-android-barcode-scanning-app – 2010-04-10 16:41:02

+0

的可能重复尝试我博客上,可能会有所帮助。 http://mcondev.wordpress.com/2011/06/24/zxing-1-7-for-android-on-eclipse/ – Siddharth 2011-12-14 05:17:12

+0

仅供参考 - http://code.google.com/p/zxing拥有转移到https://github.com/zxing/zxing – Les 2014-06-10 13:16:35

回答

21

开发人员在这里。我想你最终只想通过Intent集成。您可以免费获得改进,错误修复和平台特定的解决方法。它的代码也少得多。但我知道你在寻求替代方案。

你可能想剥离Barcode Scanner(其源代码位于android /项目中),并去掉所有你不需要的东西。这意味着只留下com.google.zxing.client.androidcom.google.zxing.client.android.camera包。核心解码在DecodeThread,但这些包中的其他代码实现了连续扫描的小回叫舞蹈并获得了通常的扫描UI。

如果您嵌入代码,您需要遵循Apache License的条款。

+0

@ james-baca您的编辑我的答案基本上是破坏行为,并已回滚。写你自己的答案广告你的服务。 – 2015-08-22 19:07:01

+0

呃,我的意思是Google Play服务,这是一件好事。点是在编辑中重写别人的答案。 – 2015-08-22 19:27:02

7

通过添加您自己的代码来下载和扩展Zxing“条码扫描仪”应用程序。它在Apache 2.0许可下。

+0

所以基本上采取Zxing的源代码,并重写它做我想要的? – 2010-04-09 13:55:10

+0

这将是我的建议。你可能只需包含现有的源代码,调用它,并很容易地捕获返回的条形码。我猜你根本不需要修改很多代码。 – 2010-04-09 17:18:55

2

我建议你通过意图使用Zxing并重定向到Android电子市场页面("market://details?id=com.google.zxing.client.android")如果它不存在(捕获ActivityNotFoundException)。 intent对于像这样的应用程序间通信来说非常棒。

+4

是的我知道我可以做到这一点,但我想要的是不得不要求用户安装一个单独的应用程序只是为了扫描 – 2010-04-09 14:19:07

4

查看新的Google Play服务7。8 API,包括条码跟踪:

0

我有这个工作:

repositories { mavenCentral() 
    maven { url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" } 
} 

compile 'com.google.zxing:core:3.2.1' 
compile 'com.embarkmobile:zxing-android-minimal:[email protected]' 
compile 'com.embarkmobile:zxing-android-integration:[email protected]' 

我建议使用IntentIntegrator

IntentIntegrator integrator = new IntentIntegrator(getActivity()); 
integrator.forSupportFragment(this).initiateScan(); 

的requestCode回来了

IntentIntegrator.REQUEST_CODE 

无需安装单独的扫描仪