Я пытаюсь подключиться к устройству (SecuGen Hamster Pro 20) через Windows.Devices.Usb API, используя универсальное приложение для Windows только для ПК (без телефонов) (WinRT).Не удается создать UsbDevice из DeviceInformation.Id
Устройство является сканером отпечатков пальцев.
Я сделал все шаги, найденные в Интернете, чтобы сделать это:
Я просмотрел для всех устройств, используя:
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 результатов Althought я уверен, что я сделал это правильно (используется правильно VID & PID)
Проблема здесь в том, когда я пытаюсь создать UsbDevice
объект любой из 3 результатов с использованием:
UsbDevice device = await UsbDevice.FromIdAsync(resultList[0].Id);
возвращаемое значение равно нулю, я попробовал все из них (resultList[0]
, resultList[1]
, resultList[2]
) не повезло.
Я настроил возможности использования:
<DeviceCapability Name="usb">
<Device Id="vidpid:1162 2200">
<Function Type="name:vendorSpecific"/>
</Device>
</DeviceCapability>
Я также попытался создать UsbDevice
объект от любого из 1400 устройств, возвращенных из DeviceInformation.FindAllAsync()
но все возвращается нуль и даже некоторые сгенерирует исключение, которое говорит the system cannot find the file specified 0x80070002
Я попытался прочитать DeviceAccessInformation
для устройства, которое оно вернуло DeviceAccessStatus.Unspecified
Любой может привести меня к тому, что мне здесь не хватает?