Empfangen von SMS gesendet aus dem WTK-Emulator in einer benutzerdefinierten Anwendung
-
19-09-2019 - |
Frage
Ich bin mit Sun WTK ein Midlet laufen, dass Bedürfnisse senden und optional SMS. WMA-Konsole kann verwendet werden, um Nachrichten an das Midlet zu senden und empfangen, aber ich mag die gleiche Sache mit meiner eigenen Anwendung zu tun.
Ich habe einige Sniffing getan, und bemerkte, dass die Nachrichten von UDP aus der WMA-Konsole an den Emulator gesendet werden.
Lösung
in den Gläsern in WTK I Nach dem Graben war in der Lage, herauszufinden, wie SMS senden und zu empfangen. Ich hatte die Gläser kvem.jar
und kenv.zip
in der Anwendung Classpath aufzunehmen. Getestet unter 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();
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow