Я хочу поместить значок текущего события в строку состояния на 2-м месте, как это делает Skype при входе в систему.
Как добавить значок уведомления/текущего события в определенную позицию в строке состояния?
Ответы (4)
Поскольку диспетчер уведомлений управляет уведомлениями, это невозможно. Единственный способ добраться до первой позиции — иметь Сервис и вызывать startForeground() - но если другая служба уже сделала то же самое, ваше уведомление будет на второй позиции.
Кроме этого, нет другого способа повлиять на позицию. Если вы создаете свое уведомление первым, вы находитесь на первом месте. Если другое приложение создаст уведомление первым, вы будете вторым.
Итак, я погуглил этот ответ и нашел этот вопрос на удивительном StackOverflow. Хотя Notification.priority = Notification.PRIORITY_MIN
работает для API 16 и выше, выполнение
Notification.when = 0
прекрасно работает для API ‹ 16.
http://grail.cba.csuohio.edu/~matos/notes/cis-493/lecture-notes/Android-Chapter23-Notifications.pdf
отличный документ!
Посмотрите пример:
Произвести уведомление. Разрешите пользователю щелкнуть панель уведомлений и выполнить соответствующие действия, чтобы получить доступ к сообщению.
Извините, что просто размещаю ссылки. Но я считаю, что это также будет полезно: сервис в Android
При настройке уведомления просто установите в поле .when значение Integer.MIN или Integer.MAX, чтобы уведомление было соответственно слева или справа.
Иконки сортируются по этому полю во всех версиях Android, включая ICS.
На JB (4.1) нужно установить приоритет уведомления, чтобы оно попадало слева или справа:
уведомление.priority = PRIORITY_MIN для правой стороны, уведомление. Priority = PRIORITY_MAX для левой стороны
РЕДАКТИРОВАТЬ: На планшетах, если вы используете Notification.FLAG_FOREGROUND_SERVICE или startForeground, значок будет расположен справа, и все, что я пытался переместить влево, не сработало (проверено на ICS).