it-swarm.com.ru

несъемное уведомление

В моем приложении есть служба, работающая в фоновом режиме. Я хочу уведомить пользователя, что служба работает. Но мне нужно, чтобы пользователь не мог удалить уведомление - нажав кнопку очистки или проведя пальцем, в панели уведомлений

enter image description here

Это означает, что мне нужно показать свое уведомление над областью уведомлений

19
Kelib

Это возможно, но способ его реализации зависит от уровня API, для которого вы разрабатываете.

Для уровней API ниже 11 вы можете установить Notification.FLAG_NO_CLEAR . Это может быть реализовано так:

// Create notification
Notification note = new Notification(R.drawable.your_icon, "Example notification", System.currentTimeMillis());

// Set notification message
note.setLatestEventInfo(context, "Some text", "Some more text", clickIntent);

// THIS LINE IS THE IMPORTANT ONE            
// This notification will not be cleared by swiping or by pressing "Clear all"
note.flags |= Notification.FLAG_NO_CLEAR;

Для уровней API выше 11 или при использовании библиотеки поддержки Android , это можно реализовать следующим образом:

Notification noti = new Notification.Builder(mContext)
    .setContentTitle("Notification title")
    .setContentText("Notification content")
    .setSmallIcon(R.drawable.yourIcon)
    .setLargeIcon(R.drawable.yourBigIcon)
    .setOngoing(true) // Again, THIS is the important line
    .build();
56
Ole

Для создания несменного уведомления просто используйте setOngoing (true);

NotificationCompat.Builder mBuilder =
                         new NotificationCompat.Builder(this)

                        .setSmallIcon(R.drawable.ic_service_launcher)

                        .setContentTitle("My title")

                        .setOngoing(true)  

                        .setContentText("Small text with details");
11
cheetah

Звучит как Notification.FLAG_NO_CLEAR или Notification.FLAG_ONGOING_EVENT это то, что вы ищете.

3
antew

Для создания несменного уведомления просто используйте setOngoing (true);

Для создания съемного уведомления просто используйте setOngoing (false);

0
Adam