Уведомление Oreo Heads-up - как обнаружить / перехватить уведомление о перенаправлении пользователя в строку состояния? - PullRequest
0 голосов
/ 09 мая 2018

Используя NotificationCompat.Builder, я создаю уведомление о входящем звонке, PRIORITY_HIGH уведомление с вибрацией и текущим значением true.

Когда вызывается notify(), он также запускает проигрыватель мелодий звонка, воспроизводя мелодию звонка.

В настоящее время это работает отлично.Действия ответа и отклонения работают нормально, единственный нюанс - если вы проведете пальцем по уведомлению, оно переместится в строку состояния (это нормально), но я также хочу, чтобы проигрыватель рингтонов остановился на этом этапе.

Есть ли способ, которым я могу сказать, или сказать, что хедз-ап уведомление было перенесено в строку состояния?

Ответ в комментарии к принятому ответу.

Проблема была решена путем добавления рингтона в компоновщик с помощью .setSound ().Спасибо АА

1 Ответ

0 голосов
/ 11 мая 2018

что вам нужно это deleteIntent

deleteIntent

Намерение выполнить, когда уведомление явно отклонено пользователем, либо с помощью кнопки «Очистить все», либо проведя его отдельно. Это, вероятно, не должно запускать действие, так как некоторые из них будут отправлены одновременно.

Вы можете установить PendingIntent на BroadcastReceiver и затем выполнить любое действие, которое хотите.

Intent intent = new Intent(this, MyBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, 0);
Builder builder = new Notification.Builder(this):
builder.setDeleteIntent(pendingIntent);

А для BroadcastReceiver

public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // stop your ringtone here
    }
}
...