我已经使用codenameone codescanner库来读取条形码。它使用第三方扫描仪,如果单独使用,工作良好,并能快速读取条形码。但是使用codenameone应用程序,相同的扫描仪太慢了(大多数时候无法扫描)。我已经在三星设备和其他一些设备上进行了测试。结果并不是那么好。如何增强扫描仪功能?
代码:
CodeScanner.getInstance().scanBarCode(new ScanResult() {
public void scanCompleted(String contents, String formatName, byte[] rawBytes) {
//barCode.setText("Bar: " + contents);
cnt.addComponent(new Label(contents));
cnt.revalidate();
}
public void scanCanceled() {
System.out.println("cancelled");
}
public void scanError(int errorCode, String message) {
System.out.println("err " + message);
}
}); 还有一件事,有时它会读取条形码,但会给出不同的代码,而不是写在代码下面的代码。例如,我正在扫描移动设备的IMEI号,它有超过15-20个数字,但扫描仪给出了除了这些IMEI数字之外的5-6位数字。这里发生何事?
你可以在视频中看到这个问题...https://youtu.be/xCtx0ZlFH0U
发布于 2017-01-27 14:23:01
尝试设置您正在尝试读取的显式代码类型,例如:
Display.getInstance().setProperty("android.scanTypes","UPC_E");
您可以看到代码类型here的列表。
或者试试小猴子的二维码库(它也适用于条形码),它在安卓上通常更好。
发布于 2019-12-16 19:20:37
Swift 5:
如果您使用的是AVFoundation,则应使用以下元数据对象类型:
metadataOutput.metadataObjectTypes = [
AVMetadataObject.ObjectType.aztec,
AVMetadataObject.ObjectType.code128,
AVMetadataObject.ObjectType.code39,
AVMetadataObject.ObjectType.code39Mod43,
AVMetadataObject.ObjectType.code93,
AVMetadataObject.ObjectType.dataMatrix,
AVMetadataObject.ObjectType.ean13,
AVMetadataObject.ObjectType.ean8,
AVMetadataObject.ObjectType.face,
AVMetadataObject.ObjectType.interleaved2of5,
AVMetadataObject.ObjectType.itf14,
AVMetadataObject.ObjectType.pdf417,
AVMetadataObject.ObjectType.qr,
AVMetadataObject.ObjectType.upce]您还可以告知用户,他们不应将相机带得太靠近条形码。(用于EAN条形码)
https://stackoverflow.com/questions/41886104
复制相似问题