Pourquoi le statut de mon port COM4 de l'ordinateur de libre alors que mon modem téléphone l'utilise?

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

  •  26-09-2019
  •  | 
  •  

Question

Voici mon code:

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

}

Ceci est la sortie:

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    

Port Mon COM4 est utilisé par mon modem téléphonique, mais selon le code de son statut est libre. Est-ce que je l'ai manqué dans le code et comment je peux trier ces derniers dehors?

Était-ce utile?

La solution

peut être que quel que soit le logiciel qui contrôle votre téléphone est en mode veille, ou quelque chose comme ça?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top