獲取COM端口號(串口,例如:COM1,COM2 ,,,) 當點擊一個按鈕時,我想在UI上顯示可用的COM端口列表。首先點擊成功獲取COM號碼,但第二次點擊失敗。你有什麼理由嗎?UWP,第二次調用時設備COM端口號爲NULL SerialDevice.FromIdAsync
這是測試兩次點擊的簡單代碼。
public async Task<bool> test()
{
Debug.WriteLine("Start");
var aqs = SerialDevice.GetDeviceSelector();
var dis = await DeviceInformation.FindAllAsync(aqs);
var port = await SerialDevice.FromIdAsync(dis[0].Id);
Debug.WriteLine("COM=" + port?.PortName);
var aqs2 = SerialDevice.GetDeviceSelector();
var dis2 = await DeviceInformation.FindAllAsync(aqs2);
var port2 = await SerialDevice.FromIdAsync(dis2[0].Id);
//port2 will be null
Debug.WriteLine("COM=" + port2?.PortName);
Debug.WriteLine("end");
return true;
}
public MainPage()
{
this.InitializeComponent();
Task.Run(() => this.test()).Wait();
}
and Package.appxmanifext has this code。
<Capability Name="internetClient" />
<DeviceCapability Name="serialcommunication">
<Device Id="any">
<Function Type="name:serialPort" />
</Device>
</DeviceCapability>
</Capabilities>
這裏是執行結果。
Start
COM=COM15
COM=
end
This post也指出了同樣的問題。我在這裏寫了評論。但爲了得到答案,我將其作爲新問題發佈。
問:要更改設備時獲取COM端口列表和更新列表,應該寫什麼代碼?
:)你是對的,呵呵..對不起,我的測試應用程序是錯誤的......但結果是一樣的......我修改了我的上面的代碼。 –