SMS нельзя предотвратить с помощью abortBroadcast()?

Я работаю над приложение для блокировки смс, в котором я использую широковещательный приемник и метод abortBroadcast() - как многие предлагали здесь, - чтобы сообщения не попадали в папку "Входящие" и не предупреждали пользователя.Но в моем случае, когда я отправляю смс с помощью эмулятора, смс-сообщение не блокируется и достигает папки «Входящие», также я получаю сообщение об ошибке:

06-29 09:19:05.854: E/BroadcastReceiver(868): BroadcastReceiver trying to return result during a non-ordered broadcast

, которое не завершает работу приложения в эмуляторе, однако Приложение закрывается, когда я тестирую его на своем телефоне.

И да, я установил высокий приоритет получателя и запросил разрешения, как вы видите здесь:

  
    
         
      





Наконец, вот мой код:

public class SMSMonitor extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        boolean isOn = loadState(context,"isOn");// is blocking enabled?
        Bundle bundle = intent.getExtras();
        Object messages[] = (Object[]) bundle.get("pdus");
        SmsMessage smsMessage[] = new SmsMessage[messages.length];
        String mAddress;
        String mBody;
        String mTime;
        if(isOn){
            // if spam blocking is enabled.
            for (int n = 0; n < messages.length; n++) {
                smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
                mAddress=smsMessage[n].getDisplayOriginatingAddress().toString();

                mBody=smsMessage[n].getDisplayMessageBody().toString();

                mTime=getTime();
                if(isBlackList( mAddress)== true) {
                    this.addLog(mAddress, mBody, mTime);
                    abortBroadcast();
                    Toast.makeText(context,"Incoming SMS was blocked and logged.", Toast.LENGTH_LONG).show();  
                }
            }
        }
    }
}

Кто-то предположил здесь, что SMS-трансляции не могут быть прерваны, потому что Android этого не позволяет. Но я видел здесь, как многие ребята предлагали использовать abortBroadcast() для блокировки смс, а также я знаю некоторые приложения для блокировки смс на рынке, которые на самом деле МОГУТ блокировать смс. Я не знаю, используют ли они abortbroadcast или нет.

Есть идеи?

5
задан Dipak Keshariya 29 June 2012 в 18:23
поделиться