自从Codename one最近更新以来,任何条形码扫描似乎都被破坏了。
在android上,摄像头出现并扫描代码,但当它返回到应用程序时什么也没发生(也就是说3个回调函数都没有被触发)。在iOS上,相机窗口甚至不出现。我使用这个库,因为它不依赖于已安装的扫描应用程序:
https://github.com/littlemonkeyltd/QRScanner
我认为内置的扫描功能可能已经被删除并传递给了这个库,所以我也试图包括它:
https://github.com/codenameone/cn1-codescan
然而,它仍然不能在Android上工作。IOS拒绝使用cn1-codescan库进行构建。
我很确定这一切都在上周或前一周工作。
我的代码是这样的:
Log.p("Scanning QR code");
QRScanner.scanQRCode(new ScanResult() {
public void scanCompleted(String contents, String formatName, byte[] rawBytes) {
Log.p("QR result:"+contents);
QRResult(contents, formatName, rawBytes);
}
public void scanCanceled() {
Log.p("scan canceled");
}
public void scanError(int errorCode, String message) {
Log.p("error during scan: " + message);
scanFailed();
}
});
编辑:
这里是添加到codenameone_setting的android构建提示。属性,当我添加库:codename1.arg.android.xapplication=<activity android:name="com.dm.zbar.android.scanner.ZBarScannerActivity" android:screenOrientation="landscape" android:label="@string/app_name" />
codename1.arg.android.xpermissions=<uses-permission android:name="android.permission.CAMERA"/><uses-feature android:name="android.hardware.camera" android:required="false"/>
codename1.arg.android.proguardKeep= -keep class net.sourceforge.zbar.** {*;}
如果您构建针对"最新"条码扫描应该工作。我假设您是基于3.5而不是最新版本构建的。这可能是条形码扫描的回归到3.5,这我们验证了条形码/qr码扫描与最新的构建服务器。