Как добавить значок уведомления / текущего события в определенную позицию в строке состояния?

Я хочу разместить значок текущего события в строке состояния на 2-й позиции, как это делает Skype при входе в систему.

4 ответа

Так что я решил поискать этот ответ и нашел этот вопрос в удивительном Stackru. В то время как Notification.priority = Notification.PRIORITY_MIN работает для API 16 и выше, делая

Notification.when = 0

прекрасно работает для API < 16.

Поскольку диспетчер уведомлений управляет уведомлениями, это невозможно. Единственный способ добраться до первой позиции - это запустить Service и вызвать startForeground(), но если другой сервис уже сделал то же самое, ваше уведомление будет на второй позиции.

Кроме этого нет другого способа повлиять на позицию. Если вы сначала создаете уведомление, вы на первом месте. Если другое приложение создает уведомление первым, вы второй.

При настройке уведомления просто установите в поле.when значение Integer.MIN или Integer.MAX, чтобы соответственно иметь уведомление слева или справа.

Значки сортируются по этому полю на всех версиях Android, вплоть до ICS.

В JB (4.1) вам нужно установить приоритет уведомления, чтобы получить его слева или справа:

Notification.priority = PRIORITY_MIN для правой стороны Notification.priority = PRIORITY_MAX для левой стороны

РЕДАКТИРОВАТЬ: На планшетах, если вы используете Notification.FLAG_FOREGROUND_SERVICE или startForeground, значок будет располагаться вправо, и все, что я пытался переместить влево, не работало (протестировано на ICS).

http://grail.cba.csuohio.edu/~matos/notes/cis-493/lecture-notes/Android-Chapter23-Notifications.pdf

отличный документ!

Проверьте пример:

Произведите уведомление. Разрешить пользователю нажимать на панель уведомлений и выполнять соответствующие действия для посещения сообщения.

Извините, что просто опубликовать ссылки. Но, это также будет полезно, я полагаю: отображать строку состояния уведомления от службы в Android

Другие вопросы по тегам