2012-01-26 2 views
1

Я разрабатываю приложение Android для Android, которое не будет сохранять сообщение в папке «Входящие». Мне нужно проверить содержимое сообщения, используя вызов webservice, а затем удалить трансляцию.android - SMS Receive Broadcast приемник получает аборт

В OnReceive() для SMSReceiver

if (messageBody.equals("somedata")) 
    { 

     Intent i = new Intent(context,Webservice.class);//webservice validation 
     i.putExtra("messageBody",messageBody) 
     startService(i); 

    // Stop it being passed to the main Messaging inbox 
     abortBroadcast(); 
    } 

Intentservice для WebService вызова никогда не получает executed.The приемник прерывается до этого. Я новичок в android, поэтому, пожалуйста, дайте мне знать, правильно ли использовать вызов webservice в службе намерений, запущенной в onReceive() приемника broacast (SMS_RECEIVE).

+0

Вы дали разрешение на чтение в файле androidmainfest.xml? – Lucifer

+0

Да, я дал следующие разрешения: \t \t

ответ

1

Использование протоколирование, чтобы убедиться, что равенства() возвращает истину. Если это так, возможно, вы делаете что-то много времени в onReceive(), и BroadcastReceiver убивается. Из документации:

http://developer.android.com/reference/android/content/BroadcastReceiver.html#onReceive(android.content.Context, android.content.Intent)

функция обычно называется в главном потоке своего процесса, так что вы никогда не должны выполнять длительные операции в ней (есть тайм-аут 10 секунд, что позволяет система разрешить блокировку приемника и убить кандидата).

1

Это может быть проблемой пространств в вашей переменной messageBody,

пожалуйста, попробуйте это,

if (messageBody.trim().equals("somedata")) 
Смежные вопросы