Почему порт COM4 моего компьютера свободен, пока модем моего телефона его использует?

StackOverflow https://stackoverflow.com/questions/4237997

  •  26-09-2019
  •  | 
  •  

Вопрос

Вот мой код:

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()+"    ");
                }
            }
    }

}

Это результат:

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    

Мой порт COM4 используется модемом моего телефона, но согласно коду его статус свободен.Есть ли что-то, что я пропустил в коде и как мне это исправить?

Это было полезно?

Решение

Может быть, какое-то программное обеспечение, управляющее вашим телефоном, находится в спящем режиме или что-то в этом роде?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top