代号一倒QR扫描

问题描述

我们正在构建一个应用程序,允许用户扫描刻在塑料盖上的QR码。 当塑料盖为黑色,QR码为白色时,雕刻的QR码将反转。

所以我有两个问题,

  1. 是否有一个标志或我们可以传递给扫描库的东西通知它我们将扫描反向QR码?

  2. 人们将如何调试该问题以查找我们(或库)做错了什么?

这是我们用来执行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 /条形码一起使用。