我创建了一个观察者,可使用BarcodeScanner
连接到Windows.Devices.PointOfService
var watcher = DeviceInformation.CreateWatcher(BarcodeScanner.GetDeviceSelector());
var id = "";
watcher.Added += async (sender, information) =>
{
id = information.Id;
var barcodeScanner = await BarcodeScanner.FromIdAsync(id);
...
}
信息参数包含所有重新添加到我的条形码扫描器的数据,但是当我尝试使用FromIdAsync
获取它时,它始终为null。
这些是包含在信息中的数据
- information {Windows.Devices.Enumeration.DeviceInformation} Windows.Devices.Enumeration.DeviceInformation
EnclosureLocation null Windows.Devices.Enumeration.EnclosureLocation
Id "\\\\?\\HID#VID_0536&PID_02E1&MI_01#c&d907bf5&0&0000#{c243ffbd-3afc-45e9-b3d3-2ba18bc7ebc5}\\POSBarcodeScanner" string
IsDefault false bool
IsEnabled true bool
Kind DeviceInterface Windows.Devices.Enumeration.DeviceInformationKind
Name "3800G" string
+ Pairing {Windows.Devices.Enumeration.DeviceInformationPairing} Windows.Devices.Enumeration.DeviceInformationPairing
+ Properties {System.__ComObject} System.Collections.Generic.IReadOnlyDictionary<string, object> {System.__ComObject}
+ Native View 0x1d148140 <Information not available, no symbols loaded for Windows.Devices.Enumeration.dll> IUnknown *
该设备被列为允许通过POS访问。
我错了哪里?我还尝试过在单击按钮后创建观察者,但是没有改变。
答案 0 :(得分:0)
如果您使用的扫描仪的型号名称如问题代码中的“ 3800G”,则Windows.Devices.PointOfService
可能不支持它。
下面是受支持型号的列表。
Supported Point of Service Peripherals
如果要与Windows.Devices.PointOfService
一起使用,请将其更改为此处描述的模型。
此外:
统一的POS标准和Windows®Embedded for Service Point是OPOS / POS for .NET / JavaPOS API。它不是Windows.Devices.PointOfService API。
该型号未在Honeywell's site上列出。
并且,日本的销售代理商可能会在销售结束时显示出来。可能是旧模式了。最好切换到新模型。
例如,detailed manual of 1900 series第21页介绍了USB HID条形码扫描仪模式设置。
如果3800G手册中没有此模式设置说明,则不能在3800G上使用Windows.Devices.PointOfService API。
如果可以设置,则可以安装与该模式相对应的设备驱动程序。
答案 1 :(得分:0)
@Luigi Saggese
您必须首先将此扫描仪置于USB HID条形码扫描仪模式。请参阅Honeywell 3800g Users Guide的1-3页以获取使扫描仪进入此模式的编程代码。
一旦扫描仪处于此模式,您将在Windows设备管理器中看到一个POS条形码扫描仪节点。特定的扫描仪将使用支持USB HID POS扫描仪协议的内置类驱动程序,在设备管理器中显示为POS HID条形码扫描仪。此时,它应该可以与您的Watcher一起使用。
Terry Warwick,微软