Por que o status da porta COM4 do meu computador está livre enquanto meu modem de telefone está usando?
-
26-09-2019 - |
Pergunta
Aqui está o meu código:
import java.io.*;
import java.util.*;
import javax.comm.*;
public class SMS {
public static void main(String[] args) {
Enumeration lists=CommPortIdentifier.getPortIdentifiers();
System.out.println(CommPortIdentifier.PORT_SERIAL);
System.out.println(lists.hasMoreElements());
while (lists.hasMoreElements()){
CommPortIdentifier cn=(CommPortIdentifier)lists.nextElement();
if ((CommPortIdentifier.PORT_SERIAL==cn.getPortType())){
System.out.println("Name is serail port "+cn.getName()+" Owned status "+cn.isCurrentlyOwned());
try{
SerialPort port1=(SerialPort)cn.open("ComControl",800000);
port1.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
System.out.println("Before get stream");
OutputStream out=port1.getOutputStream();
InputStream input=port1.getInputStream();
System.out.println("Before write");
out.write("AT".getBytes());
System.out.println("After write");
int sample=0;
//while((( sample=input.read())!=-1)){
System.out.println("Before read");
//System.out.println(input.read() + "Testing ");
//}
System.out.println("After read");
System.out.println("Receive timeout is "+port1.getReceiveTimeout());
}catch(Exception e){
System.err.println(e.getMessage());
}
}
else{
System.out.println("Name is parallel port "+cn.getName()+" Owned status "+cn.isCurrentlyOwned()+cn.getPortType()+" ");
}
}
}
}
Esta é a saída:
1 true Name is serail port COM1 Owned status false Before get stream Before write After write Before read After read Receive timeout is -1 Name is serail port COM2 Owned status false Before get stream Before write After write Before read After read Receive timeout is -1 Name is serail port COM3 Owned status false Before get stream Before write After write Before read After read Receive timeout is -1 Name is serail port COM4 Owned status false Before get stream Before write After write Before read After read Receive timeout is -1 Name is parallel port LPT1 Owned status false2 Name is parallel port LPT2 Owned status false2
Minha porta COM4 está sendo usada pelo meu modem de telefone, mas, de acordo com o código, seu status é gratuito. Há algo que perdi no código e como posso resolver isso?
Solução
Pode ser que o que seja o software que está controlando seu telefone está no modo de suspensão, ou algo assim?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow