我目前正在开发一个UWP应用程序,其中一个步骤是扫描在code39中使用相机编码的条形码。
对于我在商店中找到的其他(UWP-)应用程序,我的示例代码确实被正确识别为code39编码的(所以我假设它是一个有效的代码)。
我查看了microsoft uwp samples on github中的BarcodeScanner示例(我还查看了最近从github中删除的CameraBarcodeScanner示例)
当我使用Windows.Devices.PointOfService中的BarcodeScanner和ClaimedBarcodeScanner类时,可以正确识别其他条形码(EAN8或EAN13)。(所以我假设条形码识别就是这样的工作)
我尝试使用SetActiveSymbologiesAsync使扫描仪能够找到code39条形码。每当我在列表中没有BarcodeSymbologies.Ean8的情况下调用它,就会抛出一个异常:
"A device attached to the system is not functioning. (Exception from HRESULT: 0x8007001F)"当我在列表中使用BarcodeSymbologies.Ean8调用它时,当相机指向EAN8条形码时,它错误地识别出code39代码。
下面是我的代码:
private void OnScannerDataReceived(ClaimedBarcodeScanner sender, BarcodeScannerDataReceivedEventArgs args)
{
var dataLabel = string.Format("{0}", Encoding.UTF8.GetString(args.Report.ScanData));
var symbol = BarcodeSymbologies.GetName(args.Report.ScanDataType);
Debug.WriteLine($"LABEL: {dataLabel} | BARCODE: {symbol}.");
BarcodeReceived?.Invoke(this, dataLabel);
}发布于 2016-12-08 17:15:34
感谢您报告此问题。
好的,你问的场景是使用我们的内置软件解码器和标准的相机镜头。不幸的是,我们发现了这个解码器准确读取1D条形码的问题,包括代码39,并将在未来的版本中解决这个问题。
代码39适用于physical条形码扫描仪,因此这是一个特定于相机镜头解码器的问题。我们希望在未来的版本中有一个新的软件解码器来解决这个问题。我们建议现在只使用二维码的相机镜头解码器。
发布于 2018-06-13 03:46:36
@Nasto,
2018年春季更新到Windows101803版本引入了一个新的软件解码器,将支持Code39。你可以在https://aka.ms/camerabarcode上找到更多信息。条形码扫描仪的UWP示例应用程序也已更新,以演示相机条形码支持。
Terry Warwick,微软
https://stackoverflow.com/questions/40994381
复制相似问题