Recibir SMS enviados desde el emulador WTK en una aplicación personalizada
-
19-09-2019 - |
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.
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