这通常发生在需要在Android设备上与串行设备通信的应用程序中。解决此问题的一种方法是在Java中使用串口通信库而不是使用Python。以下是使用jSerialComm库连接COM端口的示例代码:
import com.fazecast.jSerialComm.SerialPort;
...
SerialPort[] ports = SerialPort.getCommPorts();
SerialPort port = ports[0];
port.openPort();
port.setComPortTimeouts(SerialPort.TIMEOUT_READ_BLOCKING, 100, 0);
InputStream in = port.getInputStream();
OutputStream out = port.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) > -1) {
out.write(buffer, 0, len);
}
port.closePort();
请注意,您需要将jSerialComm库添加到您的项目中。该库可以在Maven存储库中找到,您可以在Gradle中使用以下依赖项:
dependencies {
implementation 'com.fazecast:jSerialComm:2.6.2'
}