C# Windows Store 应用程序为 UsbDevice 返回 null

Posted

技术标签:

【中文标题】C# Windows Store 应用程序为 UsbDevice 返回 null【英文标题】:C# Windows Store app returning null for UsbDevice 【发布时间】:2015-02-25 14:07:22 【问题描述】:

作为 Windows 应用商店应用开发的新手,我正在开发一个必须连接到多个 USB 设备的应用。我正在使用带有 C# 的 VS 2013(社区)。

例如,使用以下方式获取附加网络摄像头的列表:

var devices = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);

这确实为我提供了附加网络摄像头的列表。 要访问第一个设备,应使用以下命令创建 UsbDevice 对象:

DeviceInformation device = devices[0];
UsbDevice  usbDevice = await UsbDevice.FromIdAsync(device.Id);

但是,对象 usbDevice 始终为空... 我已经用几种设备(不同的网络摄像头、鼠标、闪存驱动器等)尝试过这个

关于如何解决此问题或是否有替代此方法的任何建议?

【问题讨论】:

【参考方案1】:

您提到的设备都是众所周知的设备类型,它们通过更具体的类(例如网络摄像头的 MediaCapture)使用。它们不使用winusb.sys 驱动程序,并且无法使用用于通用设备的 Windows.Devices.Usb 命名空间进行控制。

来自MSDN documentation for Windows.Devices.Usb:

Windows.Devices.Usb 定义了 Windows 运行时类,Windows 商店应用程序可用于与不支持的 USB 设备进行通信 属于设备类,或 Microsoft 不为其提供 内置驱动程序。

【讨论】:

好的,谢谢。因此,为了控制网络摄像头,我应该使用 MediaCapture,而对于我的自定义设备,我将使用上述方法。

以上是关于C# Windows Store 应用程序为 UsbDevice 返回 null的主要内容,如果未能解决你的问题,请参考以下文章

WIN10 Windows store应用商店无法安装打开UWP应用解决方案

从默认 iOS App Store 链接中删除“/us/”?

iTunes 终于登陆 Microsoft Store

C# 窗口可见性,折叠和隐藏

win 10 C#解决访问长路径失败,并指定程序具有admin权限

应用程序调用了为不同线程编组的接口 - Windows Store App