使用BroadCastReceiver删除短信 - Android

时间:2010-10-06 18:18:35

标签: android

我有广播接收器类接收短信,但我不知道如何在到达收件箱之前删除收到的短信 以及通知

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());
}

2 个答案:

答案 0 :(得分:12)

在您的意图过滤器中,您应将优先级设置为高于系统SMS应用程序。

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

然后在您的广播接收器中拨打abortBroadcast()

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

答案 1 :(得分:1)

<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();
   }

这样可以正常工作。