Recevoir un SMS envoyé à partir de l'émulateur WTK dans une application personnalisée
-
19-09-2019 - |
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.
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