我们可以为我们提供什么(如果有的话)我们可以调用图像上的QR数据发现和提取?
虽然到目前为止有很多帖子引用了ZXing库进行QRCode扫描,但我还没有发现这是一个适合我的解决方案。其他几个人一直在寻求QRCode扫描替代品,我没有看到有用的反馈。我想我可能会再次向社群询问其他选项可能对于没有启动活动并在我们自己的应用程序之外调用的QR代码库。它应该以非常简单的方式从Camera2 API扫描图像。它不应该是一个复杂的图书馆。我没有看到过以这种方式谈论它的例子或个人。
实际上,为什么没有将QRCode功能的本机实现添加到操作系统中的相机库或Google SDK中的类似位置,这实在让我感到困惑。
调用并要求另一个应用程序(甚至请求下载)并不是一个优雅的解决方案,任何用户都不应该因此而屈服。作为开发人员,我们应该能够访问能够从图像或帧中提取QRCode的库,然后我们可以从中删除编码数据。
答案 0 :(得分:6)
Android QRCode扫描程序库
这可能对您有所帮助,此库不需要任何下载或使用任何外部应用程序。我们可以将其直接集成到您的应用中,并将其用于扫描QR码。
https://github.com/dm77/barcodescanner
此Wiki将帮助您与应用集成,
https://github.com/dm77/barcodescanner/blob/master/README.md
答案 1 :(得分:3)
您还可以查看MobileVisionBarcodeScanner。它由谷歌的移动视觉API提供支持。另请参阅概述 here。
答案 2 :(得分:2)
我在我的应用中使用了这个库。它也适用于xing,但您不需要任何第三方应用程序。另外它非常容易使用。
https://github.com/journeyapps/zxing-android-embedded
也许你搜索过这样的东西。
答案 3 :(得分:1)
我认为你已经找到了你正在寻找的图书馆。请参阅core/
模块:
https://github.com/zxing/zxing/tree/master/core
您只是在查看基于Intent
的集成,但实际上核心扫描是您自己的独立库,您可以将其嵌入到自己的应用中。
我认为基于Intent
的集成在大多数情况下是最好的,仅仅因为它非常简单,并且大多数人没有时间重新实现他们自己的扫描UI等核心。大多数设备已经安装了条形码扫描仪,因此通常不需要下载。
不过,请选择。这就是为什么至少有两种方法可以使用它。
答案 4 :(得分:-4)
而不是QRCODE ZXing库集成您可以从任何地方打开相机并扫描QRCode: 我在下面找到的代码可能有助于您扫描QRCode:
try {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); // "PRODUCT_MODE for bar codes
startActivityForResult(intent, 0);
} catch (Exception e) {
Uri marketUri = Uri.parse("market://details?id=com.google.zxing.client.android");
Intent marketIntent = new Intent(Intent.ACTION_VIEW,marketUri);
startActivity(marketIntent);
}
请记住,您必须拥有条形码扫描仪应用程序" Zxing"在移动电话中,否则它将首先重定向到Google Play商店链接以进行下载。