首先,我应该指出,我已将我需要与之交谈的设备添加到我的应用程序清单中,并且我能够成功地与该设备交谈。我可以使用以下行获取设备的此设备信息:
var trezorDeviceInformation = await UWPHidDevice.GetDeviceByIdSlowAsync(TrezorManager.HidId);
但是,由于某种原因,如果我尝试使用产品 ID 和供应商 ID 监视设备,则监视者的事件永远不会触发。我试过这个:
public UWPHidDevice(uint vendorId, uint productId)
{
var deviceWatcher = DeviceInformation.CreateWatcher($"System.DeviceInterface.WinUsb.UsbVendorId:={vendorId} AND System.DeviceInterface.WinUsb.UsbProductId:={productId}");
deviceWatcher.Added += DeviceWatcher_Added;
deviceWatcher.Removed += DeviceWatcher_Removed;
deviceWatcher.Start();
}
和
public UWPHidDevice(uint vendorId, uint productId)
{
string aqs = UsbDevice.GetDeviceSelector(vendorId, productId);
var deviceWatcher = DeviceInformation.CreateWatcher(aqs);
deviceWatcher.Added += DeviceWatcher_Added;
deviceWatcher.Removed += DeviceWatcher_Removed;
deviceWatcher.Start();
}
当我插入设备或使用设备启动应用程序时,添加的事件永远不会触发。我必须强调我可以在我的应用程序中使用这个设备,并且我已经三次检查了 VendorId 和 ProductId。只是观察者不起作用。我被困住了。
有没有人有提示或示例应用程序?
编辑:我已经尝试过官方的 UWP 示例应用程序。我将 VendorId 和 ProductId 替换为我需要在代码和应用清单中使用的设备值。样本也有同样的问题。