Question

J'utilise Sun WTK pour exécuter un MIDlet qui a besoin d'envoyer et de recevoir des SMS en option. WMA console peut être utilisé pour envoyer et recevoir des messages à la midlet mais je voudrais faire la même chose en utilisant ma propre application.

Je l'ai fait un peu renifler, et a remarqué que les messages sont envoyés par UDP à partir de la console WMA à l'émulateur.

Était-ce utile?

La solution

Après avoir creusé dans les pots en WTK j'ai pu comprendre comment envoyer et recevoir des SMS. Je devais inclure les pots kvem.jar et kenv.zip dans le classpath de l'application. Testé sous Linux.

public static void main(String[] args) throws IOException, PhoneNumberNotAvailableException, InterruptedException {
    System.setProperty("kvem.home", "/home/jassuncao/usr/WTK2.5.2");
    WMAClient wmaClient = WMAClientFactory.newWMAClient(null, 4);
    wmaClient.connect();       
    wmaClient.setMessageListener(new MessageListener() {
        @Override
        public void notifyIncomingMessage(WMAClient wmaclient) {
            try {
                System.out.println("Message received:"+wmaclient.receive());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });
    System.out.println("This number "+wmaClient.getPhoneNumber());        
    String[] receivers = wmaClient.getKnownReceivers();        
    for (String receiver : receivers) {
        System.out.println("Sending SMS to "+receiver);         
        Message msg = new Message("Hello world!!");         
        msg.setFromAddress("sms://"+wmaClient.getPhoneNumber());
        msg.setToAddress("sms://"+receiver);
        //It seems the ports must be set AFTER the address to work
        msg.setToPort(50000);
        msg.setFromPort(50000);
        wmaClient.send(msg);    
    }   
    System.in.read();       
    wmaClient.unregisterFromServer();       
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top