缺少System.Devices库和构造AQS字符串的问题

问题描述 投票:0回答:1

我想要实现的是扫描我的本地网络以获取连接的设备。我了解到我需要构建一个选择器并将其传递给函数

DeviceInformation.FindAllAsync()

例如。但问题是,所有这些都需要System.Devices命名空间,例如

System.Devices.InterfaceClassGuid:="{2eef81be-33fa-4800-9670-1cd474972c3f}"

我得到这样一个错误:“错误CS0234类型或命名空间名称'设备'在名称空间'系统'中不存在(你错过了程序集引用吗?)”。

我怀疑这是因为我以某种方式错过了图书馆。我尝试使用System.Devices但命名空间中不存在名称空间。我也尝试在Reference Manager中添加它,但也没有这样的库。我在网上找不到图书馆。

另外,我不确定如何构造AQS字符串。

DeviceInformationCollection collection = await DeviceInformation.FindAllAsync(DeviceClass.ImageScanner);

这没关系,但仅显示本地设备。

var selector = System.Device.Aep.ProtocolId:= "{37aba761-2124-454c-8d82-c42962c2de2b}";

这会产生错误,一个是命名空间,另一个是语法限制。

我希望将一个选择器传递给函数,但我缺少命名空间System.Devices和AQS字符串不起作用。

c# uwp
1个回答
0
投票

看起来这不是命名空间。它们是窗户属性,请检查窗户属性。

System.Devices不是命名空间。他们是Device information properties。如果你想要枚举设备,你需要使用DeviceWatcher来捕获匹配条件的设备。

DeviceWatcher deviceWatcher = DeviceInformation.CreateWatcher(
        "", // AQS Filter string
        null, // requested properties
        deviceInfoKind);

这是你可以参考的official code sample

© www.soinside.com 2019 - 2024. All rights reserved.