问题描述
我们正在构建一个应用程序,允许用户扫描刻在塑料盖上的QR码。 当塑料盖为黑色,QR码为白色时,雕刻的QR码将反转。
所以我有两个问题,
这是我们用来执行scannnig的代码,
display.getInstance().unlockOrientation();
CodeScanner.getInstance().scanQRCode(new com.codename1.ext.codescan.ScanResult() {
@Override
public void scanCompleted(String string,String string1,byte[] bytes) {
txtBarcode.setText(string);
display.getInstance().lockOrientation(true);
ScanClaim.this.revalidate();
}
@Override
public void scanCanceled() {
EMCDialogFactory.showMessageDialog("Cancelled","Scan Cancelled");
display.getInstance().lockOrientation(true);
ScanClaim.this.revalidate();
}
@Override
public void scanError(int i,String string) {
EMCDialogFactory.showMessageDialog("Error",string);
display.getInstance().lockOrientation(true);
ScanClaim.this.revalidate();
}
});
解决方法
使用标准QR扫描仪很难做到这一点,因为它是一个独立的库,没有很多选项。您可以调试本机实现,但是在这里也会遇到问题,因为QR扫描仪的默认实现依赖于拥有第三方扫描仪应用程序的用户。
有一个qr扫描仪的小猴子版本:https://github.com/littlemonkeyltd/QRScanner/ 它已嵌入其中,可能效果更好/更差。调试它很痛苦。请注意,这仅适用于Android,在iOS中,它将使用我们在主QR扫描仪中使用的标准zbar。
如果您负担得起,可以使用Scandit cn1lib:https://github.com/shannah/cn1-codescan-scandit
这是一笔不菲的费用,但它们可能会与您拥有的任何QR /条形码一起使用。