我有广播接收器类接收短信,但我不知道如何在到达收件箱之前删除收到的短信 以及通知
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());
}
答案 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();
}
这样可以正常工作。