-
Notifications
You must be signed in to change notification settings - Fork 508
Description
温馨提示
README中描述ZXingLite的几种集成方式,在App中基本都有对应的集成源码示例。所以当出现问题时,最好先参考 源码示例 来确认集成步骤没有错漏。
1. 遇到问题,该怎么做?
请先分析下问题原因,确认这个 Issues 是否有解决方案。
自己可能分析不出具体原因或无法解决,需要获得帮助,请看下面一条。
2. 需要获得帮助,提交新的Issues
在提交 Issues时,提供的信息尽可能的详细,包括但不限于:手机型号、系统版本、问题描述、截图、等等。如果是异常信息,请最好提供相关的日志信息。这样我才方便查找和定位原因。
3. 有好的建议或希望支持新功能
ZXingLite 目前正在做 意见收集,您有什么好的建议和希望增加什么功能,都可以直接提Issue进行反馈。我会抽空,评估后,考虑在下一个版本去优化或实现目前没有的功能。
下面是一些在集成时可能会遇到的问题
1. 集成后,扫码界面黑屏问题
扫码界面黑屏的原因,一般是因为 Camera动态权限 问题或集成步骤不对导致。相关步骤请参考 源码示例
2. 扫码界面预览只显示一半,另一半黑屏的问题
先确认不是布局的问题;那么还有一种可能就是由于硬件加速配置导致的;可以在
AndroidManifest文件的application中添加配置android:hardwareAccelerated="true"来启用硬件加速,便可解决此问题。(原因:PreviewView默认使用PERFORMANCE模式,该模式优先采用SurfaceView进行渲染,但某些情况下会降级为TextureView,而TextureView需要硬件加速支持。)
3. 扫码界面预览变形问题
扫码界面预览变形,一般是因为扫码界面的预览布局没有全屏铺满,导致界面预览宽高比例与Camera预览的宽高比例不一致导致。
4. 部分二维码/条形码扫码识别慢或无法识别问题
影响二维码/条形码识别的因素有很多,包括但不限于:硬件、软件、环境等因素。
a. 硬件:主要指:手机、平板等等。
b. 软件:扫码识别;这里主要指从扫码到识别的一个过程,中间包括编解码处理和算法等等。
c. 环境:扫码环境;主要包括:光线、亮度、二维码/条形码码的清晰度和规范性问题。
在这里主要讲到软件因素和环境因素,因为这二者是根据实际场景来的,是秘密相关,不可完全分开的。
5.为什么demo识别很快,自己集成却达不到这样的效果?
因为
CameraScan和DecodeConfig中有很多可配置参数;默认配置相对通用,但并不一定完全适合你的场景需求,你可根据自己的需要来修改相关配置以满足自己的需求。
6. 为什么同一个二维码通过扫码识别很快,通过相册选择图片却无法识别?
主要是存在上面提到的一些客观因素影响,包括但不限于:环境,角度,识别区域,图片大小等等。通过扫码识别时这些因素都是变量,在没识别成功前,会多次进行识别,并且只需识别成功一次即可;而从相册选择图片进行识别时,这些客观因素都相对固定;所以虽然是同一个二维码,但是识别的前提条件并不一样。
- ZXingLite 的核心识别功能是基于 zxing, ZXingLite 的主要目的是:优化从扫码到识别这中间的过程。在简化集成步骤的同时,尽可能的保证识别率不是因为中间的过程而受到影响,为zxing提供最想要的识别数据,从而间接的提升识别速度与识别率。努力的去完善扫码相关功能;
- ZXing对于常规的的二维码识别率还是比较高的,但是对于一些特殊不符合规范的二维码可能就会无法识别。如上面列出的一些客观原因。(zxing 本身的上限在那儿不会因此而改变。)
- 如果你只是基本扫码的需求,ZXingLite完全能满足你。如果你对扫码有着比较严格或者更加苛刻的要求,比如:变形码,比例不规范的码,一张复杂的大图上有个很小的码等场景,ZXingLite可能并不能完全满足你的需求。你可以尝试使用 MLKit中的mlkit-barcode-scanning,mlkit-barcode-scanning 的识别率相对来说会更高。