有没有办法通过DeviceInformation
获取设备的COM端口号?当我通过设备管理器查看它时,我可以看到COM端口号。
我刚刚碰到了几个没有列出COM端口号作为Name
属性一部分的设备。我插入了其中两个,并且没有办法将它们彼此区分开来。理想情况下,我希望看到一个COM端口。是否有不同的方式来获取这些信息?
string _serialSelector = SerialDevice.GetDeviceSelector();
DeviceInformationCollection tempInfo = await DeviceInformation.FindAllAsync(_serialSelector);
if (tempInfo.Count > 0)
{
foreach (var efefe in tempInfo)
{
if (efefe.Kind.Equals(DeviceInformationKind.DeviceInterface))
{
//efefe.Name
}
}
}
答案 0 :(得分:1)
您已完成大部分工作,然后您需要使用efefe
的ID来使用SerialDevice.FromIdAsync | fromIdAsync method获取SerialDevice
对象。
以下是演示:
string _serialSelector = SerialDevice.GetDeviceSelector();
var infos = await DeviceInformation.FindAllAsync(_serialSelector);
foreach (var info in infos)
{
var serialDevice = await SerialDevice.FromIdAsync(info.Id);
if (serialDevice != null)
{
var port = serialDevice.PortName;
Debug.WriteLine(port.ToString());
}
}
请不要忘记在清单中添加DeviceCapability
:
<DeviceCapability Name="serialcommunication">
<Device Id="any">
<Function Type="name:serialPort" />
</Device>
</DeviceCapability>