Удаление SMS с помощью BroadCastReceiver - Android

У меня есть широковещательный класс приемника для приема смс, но я не знаю, как удалить полученные sms , прежде чем попасть в папку "Входящие" , а также уведомление

public void onReceive(Context context, Intent intent) {     
        Bundle pudsBundle = intent.getExtras();     
        Object[] pdus = (Object[]) pudsBundle.get("pdus");
        SmsMessage messages =SmsMessage.createFromPdu((byte[]) pdus[0]);        
        Log.i(TAG,  messages.getMessageBody());
}

Ответ 1

В вашем целевом фильтре вы должны установить приоритет выше, чем системное SMS-приложение.

<intent-filter android:priority="100" ...

И затем в вашем широковещательном приемнике вы вызываете abortBroadcast()

   public void onReceive(Context context, Intent intent) {
     //... 
     abortBroadcast();
   }

Ответ 2

<receiver android:name=".SMSReceiver"
         android:permission="android.permission.BROADCAST_SMS"> 
        <intent-filter android:priority="999" > 
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
</receiver>

и в приемнике

  public void onReceive(Context context, Intent intent) {
     //... 
     abortBroadcast();
   }

Это будет нормально работать.