在做校园学生到校情况签到系统时,我采用了zxing作为二维码生成工具。在测试的时候使用微信打开连接发现。我长按我的二维码之后,总是不会出现以下这种识别二维码的选项。
这就大大的降低了用户的体验,只能大家对着扫或者用电脑打开签到连接。这是绝对要解决的问题。
开始这个问题一会有一会没有,我就犯了糊涂。时有时无的问题太头疼了吧。
我这个明明是生产的jpg是个图片,为什么识别不了。
这时想到是不是这个二维码识别率低?让微信发现不了他是个二维码?因为我的二维码是定时刷新,被扫描后也会刷新的,所以它的识别率时而高时而低,时而被微信识别时而不识别。
这时我问了下百度,发现zxing提高识别率是可以调高它的容错等级的。
代码如下:
Map<EncodeHintType, Object> qrParams = new HashMap<>(); // 编码 qrParams.put(EncodeHintType.CHARACTER_SET, "UTF-8"); // 纠错等级 qrParams.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 边框 qrParams.put(EncodeHintType.MARGIN, 0);
以前纠错等级是L现在是H,意思代表Low或High吧可能。现在完美解决了二维码识别率低,不能被长按识别的问题。哦耶✌️