【发布时间】:2016-05-11 12:34:16
【问题描述】:
我正在尝试使用仅适用于 PC 的通用 Windows 应用(无手机)(WinRT),通过 Windows.Devices.Usb API 连接到设备 (SecuGen Hamster Pro 20)。
该设备是指纹扫描仪。
我已经完成了网上找到的所有步骤:
我查找了所有使用以下设备的设备:
var myDevices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync();
这将返回大约 1400 个设备。经过一些过滤使用:
var resultList = myDevices.Where(s => s.Name.ToLower().Contains("secu")).ToList<DeviceInformation>();
resultList 在我的机器中包含 3 个设备(我在其他机器上尝试过,在某些机器上发现了 10 个结果)。
我没有使用重载来查找设备 DeviceInformation.FindAllAsync(String aqsFilter),因为它返回 0 个结果,尽管我确信我做对了(使用了正确的 VID 和 PID)
这里的问题是当我尝试使用以下 3 个结果中的任何一个创建 UsbDevice 对象时:
UsbDevice device = await UsbDevice.FromIdAsync(resultList[0].Id);
返回值为null,我都试过了(resultList[0],resultList[1],resultList[2])都没有运气。
我使用以下方法配置了功能:
<DeviceCapability Name="usb">
<Device Id="vidpid:1162 2200">
<Function Type="name:vendorSpecific"/>
</Device>
</DeviceCapability>
我还尝试从DeviceInformation.FindAllAsync() 返回的 1400 个设备中的任何一个创建一个 UsbDevice 对象,但所有设备都返回 null,甚至有些抛出异常,显示为 the system cannot find the file specified 0x80070002
我尝试读取 DeviceAccessInformation 以获取它返回的设备 DeviceAccessStatus.Unspecified
任何人都可以引导我了解我在这里缺少什么?
【问题讨论】:
标签: c# windows-runtime usb win-universal-app hardware