我发布这个是为了回答我自己的问题(以防万一其他人遇到这个问题。)
我正在使用 ZXing 的 Android 库生成一个二维码。二维码生成正确,我可以显示它(在使用QRCode.getMatrix().getArray()
.
此外,每当我为 设置纠错级别时Encoder
,它都会忽略它并使用一些随机级别(通常是 Q 级别)进行编码。
我用这段代码生成二维码:
二维码; 尝试 { code = Encoder.encode("...QRCODEDATA...", ErrorCorrectionLevel.L); } 捕捉(WriterException ex) { log("获取二维码失败"); 返回空值; }
...然后,在获得QRCode
对象后,我像这样绘制位图:
byte[][] bitArray = qrCode.getMatrix().getArray();
if(bitArray == null || bitArray.length < 1)
return null;
for(int x = 0;x < bitArray.length;x++)
{
for(int y = 0;y < bitArray[x].length;y++)
{
if(bitArray[x][y] == 0)
bitmapDrawCell(x,y,WHITE);
else
bitmapDrawCell(x,y,BLACK);
}
}
这就是我最终的结果。
它看起来正确,但它不会扫描。少数二维码扫描仪仍会扫描它,但大多数不会。这是怎么回事?