#codenameone #qr-code
#codenameone #qr-код
Вопрос:
Мы создаем приложение, которое позволяет пользователю сканировать QR-код, выгравированный на пластиковой крышке. Выгравированный QR-код перевернут, поскольку пластиковая крышка черная, а QR-код белый.
Итак, у меня есть два вопроса,
-
Есть ли флаг или что-то еще, что мы можем передать в библиотеку сканирования, чтобы сообщить ей, что мы будем сканировать перевернутые QR-коды?
-
Как бы можно было отладить проблему, чтобы выяснить, что мы (или библиотека) делаем неправильно?
Вот код, который мы используем для сканирования,
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 / штрих-кодом, который у вас есть.