【问题标题】:UWP app cannot find the USB device. Always getting null from UsbDevice.FromIdAsync()UWP 应用找不到 USB 设备。总是从 UsbDevice.FromIdAsync() 获取 null
【发布时间】:2021-09-21 23:31:04
【问题描述】:

我尝试按照MSDN 中的说明在uwp 中连接USB 设备,但是我无法连接到USB 设备并且总是从UsbDevice.FromIdAsync() 中获取null。 我看过关于这个问题的可能问题和答案herehere

但没有什么能解决我的问题。任何帮助将不胜感激。

这些是我正在尝试的代码 sn-p。相同的代码 sn-p 可用于 .Net 标准应用程序。但不适用于 UWP。

UsbDevice device = null;
        string HPVID = "1008";
        string pid = "9812";
        try
        {

            Task.Run(async () =>
            {
                var aqsFilter = "System.Devices.InterfaceEnabled:= System.StructuredQueryType.Boolean#True " + "AND System.DeviceInterface.WinUsb.UsbVendorId:=" + HPVID +
                    "AND System.DeviceInterface.Winusb.UsbProductId:=" + pid;
                DeviceInformationCollection deviceInterface = await DeviceInformation.FindAllAsync(aqsFilter);

                if (deviceInterface.Count > 0)
                {
                    device = await UsbDevice.FromIdAsync(deviceInterface[0].Id);
                }

            }).Wait();
        }

【问题讨论】:

  • 你有没有在项目清单文件中添加DeviceCapability,比如this
  • 谢谢@NicoZhu-MSFT。我已根据您的评论编辑了 Package.appxmanifest,它对我有用。我正在尝试通过 USB 连接打印机。真的我想知道 的实际含义。以及我需要给出什么价值。我是 UWP 和 USB 连接的新手,如有任何问题,请见谅
  • 我在下面添加了答案,请查看。
  • @NicoZhu-MSFT 感谢您的帮助,winusb 通信工作正常。我还有一个疑问,如果winusb接口不可用,我需要通过REST接口与USB设备通信。如何通过 REST 接口实现 USB 通信。任何帮助将不胜感激。

标签: c# uwp usb printers


【解决方案1】:

UWP 应用找不到 USB 设备。总是从 UsbDevice.FromIdAsync() 获取 null

如果添加DeviceCapability 能力,请检查包清单文件,这里是code sample,您可以参考。

真的很想知道到底是什么意思

我们有 document 解释 Functionhere 记录了如何在包清单中指定设备功能。这是您可以参考的support list

长度在 1 到 100 个字符之间的字符串。在适当的情况下,字符串可以以 "classId:" | 开头。 "winUsbId:" | “服务标识:” | “服务标识:” | “用法:” | "interfaceId:"

【讨论】:

    猜你喜欢
    • 2017-04-27
    • 2012-03-19
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    相关资源
    最近更新 更多