Android - как скрыть уведомление о входящих смс?

Как программно скрыть определенные входящие смс? Чтобы не было видно уведомления, но сама смс сохранялась при этом во входящих.

Установка приоритета android:priority="100" не помогает.


Ответы (1 шт):

Автор решения: Barmaley

Надо задекларировать ресивер бродкаста на получение SMS, примерно так:

public class SmsReceiver extends BroadcastReceiver {

   @Override
   public void onReceive(Context context, Intent intent) {
      this.abortBroadcast();
   }
}

Не забыть декларацию в манифесте:

<!-- SMS receiver -->
    <receiver
        android:name=".SmsReceiver"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.BROADCAST_SMS" >
        <intent-filter android:priority="2147483647" > <!-- 999 is highest system priority, so it's hack 2147483647 -->
            <action android:name="android.provider.Telephony.SMS_RECEIVED" /> <!-- pre kitkat action -->
            <action android:name="android.provider.Telephony.SMS_DELIVER" /> <!-- kitkat action -->
        </intent-filter>
    </receiver>

Update

  1. Экшн SMS_RECEIVED получает приложение уже по факту получения смс, здесь уже все пост-фактум, то есть уведомление уже будет выставлено дефолтным мессенджером и сохранено в БД. Его перехватывать в общем то бессмысленно

  2. Экшн SMS_DELIVERED получает только дефолтный мессенджер, при этом уже дефолтный мессенджер ответственен за уведомление и сохранения сообщения.

Соответственно:

Вам надо зарегистрировать свое приложение как дефолтный обработчик СМС сообщений. и ловить SMS_DELIVERED, в котором "гасить" уведомления. Сразу предупреждаю это довольно сложно: ваше приложение должно уметь писать, читать, удалять сообщения и т.д. Более-менее полная процедура описана например здесь. Но даже это не гарантирует, что приложение ваше будет дефолтным - все равно в конечном итоге, выскочит диалог в котором юзеру будет предложено выбрать, типа:

введите сюда описание изображения

P.S. Если интересно, можете посмотреть исходники приложения DarkSMS, написанный при скромном моем участии, в нем весь этот функционал реализован.

→ Ссылка