Удаление 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();
}
Это будет нормально работать.