这是我为设备枚举实现的代码。我能够检测和显示所有连接的串行设备。但是假设我连接了另一个设备,然后尝试调用这个函数,它总是显示在第一次运行代码时连接的设备。
代码Snipet:
public void Listports() {
Enumeration ports = null;
ports = CommPortIdentifier.getPortIdentifiers();
CommPortIdentifier portId = null;
{
while (ports.hasMoreElements()) {
portId = (CommPortIdentifier) ports.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL){
System.out.println(portId.getName());
}
}
}
}
。例如,第一次调用该函数,显示COM1和COM3。
现在假设COM27上加载了一个连接的串行设备。因此,如果我们重新运行代码,它只显示COM1和COM3,而没有COM27。
另一个场景,在我第一次运行代码之前,在COM27上加载了一个串行设备。现在第一次运行它显示COM1,COM3,COM27。现在移除COM27设备并重新运行上面的代码,它仍然显示COM27已连接。
在这方面的任何帮助都是非常感谢的。
谢谢,Abhi
通信端口API
你只是得到一个列表的通信端口,你可以然后,例如,如果端口是由某些应用程序拥有或使用isCurrentlyOwned()
基本上只是迭代一个列表并不能告诉你列表中的任何东西,直到你进一步测试它。