来自Windows.Devices.Enumeration.DeviceInformation

时间:2016-10-27 23:29:51

标签: c# uwp

有没有办法通过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                     
            }
        }
    }

1 个答案:

答案 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>