1

这是我为设备枚举实现的代码。我能够检测并显示所有连接的串行设备。但是假设我连接了另一个设备,然后尝试调用此功能,它始终显示在第一次运行代码期间连接的设备。

代码片段:

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已连接。

非常感谢这方面的任何帮助。

谢谢,阿比

4

1 回答 1

0

通讯端口 API

你只是得到一个列表 op comm 端口,然后你可以尝试如果端口是拥有的,也就是被某些应用程序使用 isCurrentlyOwned()

基本上只是迭代一个列表不会告诉你列表中的任何内容,直到你进一步测试它。

于 2013-03-18T12:11:23.237 回答