Pregunta

Estoy usando Sun WTK para ejecutar un MIDlet que necesita para enviar y recibir SMS opcionalmente. WMA consola se puede utilizar para enviar y recibir mensajes a la MIDlet pero me gustaría hacer lo mismo usando mi propia aplicación.

He hecho algunas olfateando, y se dio cuenta de que los mensajes son enviados por UDP desde la consola WMA al emulador.

¿Fue útil?

Solución

Después de cavar dentro de los frascos en WTK yo era capaz de encontrar la manera de enviar y recibir SMS. He tenido que incluir el kvem.jar frascos y kenv.zip en el classpath de la aplicación. Probado en 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();       
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top