我想创建一个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上找到的样品涉及必须提示用户进入市场并安装zxing条形码扫描仪,以便我的应用程序可以在需要时调用条形码扫描器,然后条形码扫描器将信息返回到我的应用。
虽然这对我来说是一个很好的起点,但我想知道是否有其他选项可以让我在我自己的应用程序中嵌入条形码扫描器,而不必提示用户下载辅助应用程序?
答案 0 :(得分:21)
开发者在这里。我想你最终还是希望通过Intent进行集成。您可以免费获得改进,错误修复和特定于平台的解决方法。它的代码也少得多。但我知道你要求另一种选择。
您可能想要删除Barcode Scanner(其源代码位于项目中的android /中)并删除您不需要的所有内容。这意味着只留下com.google.zxing.client.android
和com.google.zxing.client.android.camera
个软件包。核心解码在DecodeThread
,但这些包中的其他代码实现了连续扫描的小回调舞,并获得了通常的扫描UI。
如果您嵌入了代码,则需要遵循Apache License的条款。
答案 1 :(得分:7)
通过添加您自己的代码,下载并扩展Zxing“条码扫描器”应用程序。它是在Apache 2.0许可下。
答案 2 :(得分:6)
Google Mobile Vision 已弃用,取而代之的是 ML Kit。 https://developers.google.com/ml-kit/vision/barcode-scanning 它在 android 和 iOS 上都提供 sdks,并且正在通过最新的谷歌技术得到积极改进。 对于android,它提供了可以捆绑模型的sdk,如果您想节省应用程序的大小,它还提供了可以自动从Google Play服务中获取模型的SDK。
答案 3 :(得分:4)
查看包含条形码跟踪的新版Google Play Services 7.8 API:https://developers.google.com/vision/barcodes-overview
答案 4 :(得分:2)
我建议您通过意图使用Zxing并重定向到Android Market页面("market://details?id=com.google.zxing.client.android"
),如果它不存在(捕获ActivityNotFoundException
)。意图非常适合这样的应用程序间通信。
答案 5 :(得分: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:2.0.0@aar'
compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar'
我建议使用IntentIntegrator
IntentIntegrator integrator = new IntentIntegrator(getActivity());
integrator.forSupportFragment(this).initiateScan();
requestCode以
返回IntentIntegrator.REQUEST_CODE
无需安装单独的扫描仪
答案 6 :(得分:0)
我建议使用谷歌条码扫描。它非常敏感。它被称为谷歌移动视觉。
Barcode Scanner API可以实时检测条形码 取向。您还可以检测并解析几个条形码 同时使用不同的格式。
https://developers.google.com/vision/
https://codelabs.developers.google.com/codelabs/bar-codes/#0