我正在使用UWP 条形码示例。
我正在尝试将 UWP PointOfService API 与运行 Windows 10 Mobile Enterprise 的 Panasonic FZ-F1 一起使用。我无法获得支持的符号,因为scanner.GetSupportedSymbologiesAsync()总是返回一个 null System.__ComObject
。使用本机视图,在调试设备时属于 IUnknown 类型。
0x00007ff8ca8ba278 {Windows.Devices.PointOfService.dll!const Windows::Internal::AsyncOperation<struct Windows::Foundation::IAsyncOperation<struct Windows::Foundation::Collections::IVectorView<unsigned int> *>, struct Windows::Foundation::IAsyncOperationCompletedHandler<struct Windows::Foundation::Collections::IVectorView<unsigned int> *>, class Windows::Internal::CMarshaledInterfaceResult<struct Windows::Foundation::Collections::IVectorView<unsigned int> >, class Windows::Internal::ComTaskPoolHandler,struct Windows::Internal::INilDelegate,struct Microsoft::WRL::AsyncOptions<-1,0,&struct _GUID const GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2> >::`vftable'{for `Microsoft::WRL::Details::ImplementsHelper<struct Microsoft::WRL::RuntimeClassFlags<3>,1,struct Windows::Foundation::IAsyncOperation<struct Windows::Foundation::Collections::IVectorView<unsigned int> *>, struct Windows::Internal::IAsyncOperationLocal,struct Microsoft::WRL::CloakedIid<struct Windows::Internal::IAsyncDeferral>,struct Microsoft::WRL::CloakedIid<struct Windows::Internal::IComPoolTask>,struct Microsoft::WRL::CloakedIid<struct Windows::Internal::IAsyncFireCompletion> >'}} {...}
我还在 Windows 10 16299 上使用 Honeywell Xenon 1900g 对此进行了测试,但它在那里也不起作用。这是那里的错误。
$exception {System.NullReferenceException: Object reference not set to an instance of an object.
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at SDKTemplate.Scenario3_ActiveSymbologies.<ScenarioStartScanButton_Click>d__8.MoveNext()} System.NullReferenceException
StackTrace " at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at SDKTemplate.Scenario3_ActiveSymbologies.<ScenarioStartScanButton_Click>d__8.MoveNext()" string
我需要能够支持长度为10的TfInt(I2of5),由于无法设置长度属性而无法扫描。我曾尝试使用claimScanner.GetSymbologyAttributesAsync(BarcodeSymbologies.TfInt)定义条形码,但它失败并出现以下异常。
{System.Exception: The request is not supported. (Exception from HRESULT: 0x80070032)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at SDKTemplate.Scenario4_SymbologyAttributes.<SymbologySelection_Changed>d__13.MoveNext()} System.Exception
FZ-F1 确实支持 TfInt (I2of5)。使用其预加载的 Barcode Reader 演示应用程序(我假设它是使用 Windows 8.1 Handheld API 创建的),我可以在那里分配长度,它可以按预期工作。
目前,经过一些测试,我发现 API 默认为 TfInt (I2of5) Length1、Length2 或 AnyLength(我不确定当前设置的内容)使用 14 的长度,因此有一个可能的解决方法,即我们可以将所有条形码更改为使用 14 的长度。如果长度低于 14,则无法扫描。
任何人都可以深入了解这个 API 是否真的适用于我尝试过的事情。他们创建的样本就像它一样有效,但根据我的经验,它没有。(将此添加到文档中将非常有帮助)