首页 > 其他 > 详细

APK 集成扫描二维码与条形码的功能

时间:2019-11-29 18:36:29      阅读:71      评论:0      收藏:0      [点我收藏+]

2019-11-29

关键字:libzxing、Android扫二维码


 

如果你想在你的 APK 上集成一个扫描二维码、条形码的功能,你有两条路可选:

1、使用第三方开源库;

2、使用第三方开源库;

没错,两条路都建议你选择一个成熟的第三方扫码开源库。极度不建议自己开发一个扫码软件,这种基础功能的东西网上早已有了非常成熟的开源解决方案,你为什么要浪费时间和精力去自己钻研呢?

 

如果你说你就是想学习使用手机摄像头解析二维码、条形码的知识,那我就没话说了。

 

本篇文章记述的是笔者在普通 APK 上集成 libzxing 开源库实现扫条形码与二维码功能的过程。

 

首先来介绍下实现扫码功能的核心部件:zxing。

 

zxing 是大名鼎鼎的开源一维、二维码解码库,它的Github地址为:

https://github.com/zxing/zxing

而 libzxing 则是对 zxing 的一个封装,它将 zxing 的基础功能作了一些简单的封装,使得开发者可以实现“拿来即用”的目的。笔者这篇文章记述的就是 libzxing 在 Android Studio 工程上的集成过程。

 

首先,准备好 libzxing 的源码,它在笔者这里是一个普通的APK库工程文件夹:

技术分享图片

 

直接将这个文件夹放到我们的工程根目录下就行。

 

其次,在 Android Studio 上打开我们的 APK 工程,默认情况下在视图结构为 "Android" 时是看不到我们刚加进去的 libzxing 工程的,如下图:

技术分享图片

 

这个时候就需要我们配置一下工程依赖链以使 Android Studio 能识别到 libzxing 库工程。

 

打开工程的 ‘settings.gradle‘ 文件,并添加如下信息:

技术分享图片

 

打开我们 Module:app 的 build.gradle 配置文件,引入外部库工程,如下图所示:

技术分享图片

 

最后再打开 libzxing 工程的 build.gradle 配置文件,在这里主要就是修改一下编译信息,如编译工具、目标SDK版本等,修改原则以与自己的主工程一致为准:

技术分享图片

 

 

至此,应该就能看到 Android Studio 提示的提示同步 gradle 的请求了。同步一下,如果你的 gradle 库中没有 zxing 的依赖库,则可能需要连网下载,当然这个操作是自动进行的。然后应该就能看到 libzxing 的依赖已经上来的了:

技术分享图片

 

 

libzxing 的集成就完成了。下面再来看看如何使用它。

 

libzxing 一个建议的调用扫码界面的方式是通过 startActivity 并监听 onActivityResult 的结果。

 

调用的方式非常简单,就一行代码:

QRCodeManager.getInstance().with(activity).scanningQRCode(REQUEST_CODE_QRCODE_BARCODE_SCAN);

我们只需要知道 libzxing 的启动是通过 startActivityForResult() 实现的就能理解上面这段代码了。 with 方法的 activity 参数就是你触发扫码请求的 Activity 实例就行。scanningQRCode 的参数就是 startActivityForResult 的 requestCode。

 

然后就是在对应的 Activity 里重写 onActivityResult() 方法即可。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    if(requestCode == REQUEST_CODE_QRCODE_BARCODE_SCAN && resultCode == RESULT_OK && data != null){
        String code = data.getStringExtra("result");
        Logger.d(TAG, "qrcode/barcode:" + code);
    }
}

 

最后,不要忘记给 Camera 权限。

 


 

APK 集成扫描二维码与条形码的功能

原文:https://www.cnblogs.com/chorm590/p/10914503.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!