在做校園學生到校情況簽到系統時,我采用了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吧可能。現在完美解決了二維碼識別率低,不能被長按識別的問題。哦耶✌️