J2ME midlet を使用してモバイル デバイスで受信したメッセージを読み取る方法がわかりません。実際に、SMS ゲートウェイを使用して他のモバイルにメッセージを送信しています。SMS ゲートウェイは同じモバイル デバイスに返信しますが、返信メッセージを読みたいです。受信トレイをチェックするのではなく、デバイスを直接確認します。コンセプトを使用してPushRegistry
j2me midletでこれを行う方法。良いアイデアまたはサンプルコードを教えてください...事前に感謝します。
質問する
1636 次
1 に答える
3
これには PushRegistry メカニズムを使用する必要があります。そのためには、アプリケーションが受信 SMS に反応することを .jad ファイルでマークし、SMS 許可もマークする必要があります。これらのプロパティを JAD ファイルに追加します。
MIDlet-Push-1: sms://:10214,hu.bute.daai.example.sms.MidletSMSPushDemo,*
MIDlet-Permissions: javax.microedition.io.PushRegistry, javax.microedition.io.Connector.sms, javax.wireless.messaging.sms.receive
独自のパッケージと MIDlet 名を使用する必要があることに注意してください。それに加えて、JAD で定義されたのと同じポート(例では 10214) を SMS 送信に使用する必要があります。
その後、MIDlet が起動したら、SMS 受信コードを呼び出して SMS を取得する必要があります。
public class MidletJSMSProxy extends MIDlet {
public void startApp() {
initalize();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void initSMSReceive() {
new Thread() {
public void run() {
MessageConnection conn = null;
try {
String url = "sms://:10214";
MessageConnection conn = (MessageConnection) Connector.open(url);
TextMessage message = (TextMessage)conn.receive();
System.out.println("SMS: "+message.getAddress()+" - "+message.getPayloadText());
}
catch(Exception e){
e.printStackTrace();
} finally {
try {
if (conn != null)
conn.close();
} catch(Exception e){
e.printStackTrace();
}
}
}
}.start();
}
}
于 2012-09-26T15:48:15.993 に答える