2013-09-02 12 views
0

Доброго утра, у меня есть следующий код:как перехватить SMS в J2ME

int numero = 22492; 
String PhnNoStr = String.valueOf (numero); 
String transaction = WriteText(tipoTransacao); 
String SmsStr = "ECART" + "" + transaction + idToken; 
System.out.println ("Message:" + smsStr); 
MessageConnection msgCon = null; 
msgCon = (MessageConnection) Connector.open ("sms :/ /" + + phnNoStr ": 500"); 
TextMessage TxtMsg = (TextMessage) msgCon.newMessage (MessageConnection.TEXT_MESSAGE); 
txtMsg.setPayloadText (smsStr); 
msgCon.send (TxtMsg); 

поэтому я отправляю это сообщение по умолчанию он возвращает мне сообщение. Я могу отправить и получить это сообщение, однако мне нужно перехватить, когда я получу это сообщение, кто-нибудь знает, как я могу это сделать?

Спасибо

+1

Что именно вы подразумеваете под * перехватом *? –

+0

, когда я отправляю сообщение, он возвращает мне непогашенный остаток, который мне нужен , при возврате сообщения мне нужно получить информацию в этом сообщении и отобразить его в своем приложении. –

+0

, если он не отправляет номер порта, вы не можете это сделать – funkybro

ответ

0

Вы можете использовать PushRegistry, чтобы ваш мидлет запущен, когда SMS получено и мидлет не работает.

PushRegistry.registerConnection("sms://:500", "your_package.Your_MIDlet", "*"); 

Для обработки входящего SMS, вам необходимо открыть подключение и прослушивание входящего сообщения, например:

class SMSHandler implements MessageListener, Runnable { 
    public void start() { 
     ... 
     connection = (MessageConnection) Connector.open("sms://:500", Connector.READ); 
     connection.setMessageListener(this); 
    } 

    public void notifyIncomingMessage(MessageConnection messageConnection) { 
     (new Thread(this)).start(); 
    } 

    public void run() { 
     final Message message = connection.receive(); 
     ... 
    } 

(Причина для обработки сообщения в другом потоке, что блокирование ввода/вывода не должны выполняться в обратном вызове системы - по крайней мере, эмулятор WTK будет печатать предупреждение, а на некоторых телефонах мидлет просто замерзнет).

Смежные вопросы