Кодовое имя одного перевернутого QR-сканирования

#codenameone #qr-code

#codenameone #qr-код

Вопрос:

Мы создаем приложение, которое позволяет пользователю сканировать QR-код, выгравированный на пластиковой крышке. Выгравированный QR-код перевернут, поскольку пластиковая крышка черная, а QR-код белый.

Итак, у меня есть два вопроса,

  1. Есть ли флаг или что-то еще, что мы можем передать в библиотеку сканирования, чтобы сообщить ей, что мы будем сканировать перевернутые QR-коды?

  2. Как бы можно было отладить проблему, чтобы выяснить, что мы (или библиотека) делаем неправильно?

Вот код, который мы используем для сканирования,

                 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();
                    }
                });
  

Ответ №1:

Это было бы сложно сделать со стандартным QR-сканером, поскольку это автономная библиотека с небольшим количеством опций. Вы можете отладить встроенную реализацию, но здесь вы также сталкиваетесь с проблемой, потому что реализация QR scanner по умолчанию зависит от пользователя, имеющего стороннее приложение для сканирования.

Существует версия qr-сканера little monkey: https://github.com/littlemonkeyltd/QRScanner/ Оно встроено в и может работать лучше / хуже. Отладка — это боль. Обратите внимание, это относится только к Android, а в iOS будет использоваться стандартная панель zbar, которую мы используем в основном QR-сканере.

Если вы можете себе это позволить, есть Scandit cn1lib: https://github.com/shannah/cn1-codescan-scandit

Это довольно солидная плата за лицензию, но они, вероятно, будут работать с любым QR / штрих-кодом, который у вас есть.