2012-05-30 7 views
0

Я хочу получить шлейф SMS, т. Е. Отправлять и получать SMS-сообщения из одного приложения. Для этого я создал класс, который расширяет BroadcastReciever, реализовал метод onReceive() и объявил соответствующие разрешения.Android - SMS Loopback

Я проверил реализацию, отправив SMS с помощью telnet. Я хочу автоматизировать процесс telnet, т. Е. Сам тест приложения, отправив SMS. Для того, чтобы сделать это, я призываю следующий метод в основной деятельности, но BroadcastReceiver никогда не называют:

private final void sendSMS() { 
    final TelephonyManager telMgr = (TelephonyManager) 
      getSystemService(Context.TELEPHONY_SERVICE); 
    final int len = telMgr.getLine1Number().length(); 
    final String phoneNum = telMgr.getLine1Number().substring(len - 4, len); 
    final String msg = "msg"; 
    SmsManager.getDefault().sendTextMessage(phoneNum, null, msg, null, null); 
} 

Любой ключ, что не так ...?

UPDATE: Обратите внимание, что приведенный выше код предназначен для эмулятора.

ответ

0

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

Поскольку команды телнет работы, ваш BroadcastReceiver, вероятно, правильно реализована, но вы, вероятно, следует прикрепить код для него в любом случае ... Его трудно устранить код, который вы не можете увидеть :)

+0

Спасибо за ваш ответ. Почему вы утверждаете, что эмулятор не может отправить SMS обратно самому себе? – MrRoth

+0

Я утверждаю, что, поскольку он никогда не работал ни на одном из моих эмуляторов. Не через встроенное SMS-приложение, ни через SmsManager. При использовании встроенного SMS-приложения SMS будет помечен как отправленный, но вы его никогда не получите :( – Ole

+0

Это как раз проблема :( – MrRoth