移动端扫码有三种路线:
1 在移动端利用二维码的规则解析,比如flutter的qr_code_scaner,扫码慢,并且要对准,靠近,不晃。
2 照相发后台,比如python pyzbar(实际是c的zbar),如果分辨率调高点,似乎比第一种方法还快点并且不太好的照片也成。
3 前沿主流,基于机器学习的扫码,比如基于google firebase ml vision,快,准,晃动中即可识别。
那么问题来了,国内可以使用吗?由于众所周知的原因,大部分firebase服务是不可以的,但是ml vison可以。以flutter_camera_ml_vision为例子,记录如下(当然你开发的时候必须有梯子,可以指的是打包成apk以后):
1 首先生成golgle-services.json ,放到安卓app目录下,这个不会生成,去google吧
2 一通狂配置,按flutter_camera_ml_vision文档走,大小gradle,manifest啥的,跟着改。
3 这是最为关键的,如果你仅仅按照官方文档走,你最后会遇见什么google sevice没有啊,本地barcoee下载不到啊啥的,笔者在网上查阅了一天半后,找到了最简单的方法,具体原因就不写了,众说纷纭,总之这么干就可以:就是把这三个都加上 firebase_ml_vision: ^0.9.9
flutter_camera_ml_vision: ^2.2.4
qr_mobile_vision: ^1.0.2
然后无论打包apk,还是andoid studio调试,都可以成功离线扫描