我需要读取 PDF417 条形码。
但是,以下代码会导致我的应用程序在我的 Android 手机上运行时打开一个对话框,要求安装条形码扫描仪。
该对话框为我提供了安装“条形码扫描仪”和安装“条形码扫描仪 + SIMPLE”的选项。
“条形码扫描仪”选项会在手机上安装应用程序(通过 PlayStore)。 “条形码扫描仪 + 简单”选项将我带到 PlayStore 中显示“出现问题”的页面。
在第一个选项上安装应用程序后,单击我的应用程序中的按钮会显示要求安装应用程序的相同对话框。
private void scanDisk() {
CodeScanner scanner = CodeScanner.getInstance();
if (scanner == null) {
CodenameOneUtils.toastMessage("Scanner is null");
return;
}
scanner.scanQRCode(new ScanResult() {
@Override
public void scanCompleted(String s, String s1, byte[] bytes) {
CodenameOneUtils.showDialog(s + "/n" + s1);
}
@Override
public void scanCanceled() {
// nothing - do we care?
}
@Override
public void scanError(int i, String s) {
// we should really show a message...
CodenameOneUtils.toastMessage("Scan failed: " + s);
}
});
}
尝试将
Display.getInstance().putProperty("scanAllCodeTypes", "true")
添加到主类中的 init(Object)
回调中。这应该强制扫描任何类型的二维码/条形码,如此代码所示。
如果这不起作用或效率不高,我们可能需要采取更积极的措施。