15

Я пытаюсь разместить мое уведомление поверх области уведомлений.Android: Как я могу разместить свое уведомление поверх области уведомлений?

Решение состоит в том, чтобы установить параметр «когда», чтобы мой объект уведомления с будущим временем, как:

notification.when = System.currentTimeMills()*2; 

код, который я использую в этом:

 long timeNotification = System.currentTimeMillis()*2; 
     Notification notification = new Notification(statusIcon,c.getResources().getString(R.string.app_name),timeNotification); 
     notification.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR; 
     notification.when = timeNotification; 
     notification.priority = Notification.PRIORITY_MAX; 

, но какой-то приложения (например, Facebook) могут отправлять простые уведомления с их текущим временем по моему.

Если я обновляю свое уведомление, оно остается под этими.

Какие параметры я должен установить, чтобы поместить мой Notification в начало области уведомлений?

+0

какая версия ОС Android вы тестируете на? – HitOdessit

+0

Android 4.1.1 Jelly Bean – Meroelyth

ответ

3

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

Для того, чтобы сделать этот набор флагов вашего Notification объекта:

notif.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR 
+0

Спасибо за помощь. Я редактирую свой вопрос, чтобы показать вам мой код. Я уже использую ваши предложения. – Meroelyth

3

Попробуйте установить priority уведомления высокой

документации>Notification Priority

Также проверьте этот вопрос может он может помочь вы Pin Notification to top of notification area

+0

Спасибо за помощь. Я редактирую свой вопрос, чтобы показать вам мой код. Я уже использую ваши предложения. – Meroelyth

+0

Итак, какой результат вы получаете? –

+1

Некоторые приложения могут размещать свои уведомления поверх моих. – Meroelyth

13

Вы должны это сделать. Другие ответы кажутся устаревшими.

NotificationCompat.Builder mBuilder = 
      (NotificationCompat.Builder) new NotificationCompat.Builder(context) 
      .setSmallIcon(R.drawable.some_small_icon) 
      .setContentTitle("Title") 
      .setContentText("This is a test notification with MAX priority") 
      .setPriority(Notification.PRIORITY_MAX); 

setPriority (уведомление.PRIORITY_MAX) важен. Его также можно заменить любым из следующих требований.

Различные Уровни приоритета Информация:

PRIORITY_MAX - Использование критических и срочных уведомлений предупреждает пользователя о состоянии, что является критичной по времени или должен быть решен, прежде чем они могут продолжать с особая задача.

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

PRIORITY_DEFAULT - Используйте для всех уведомлений, которые не попадают ни в один из других приоритетов, описанных здесь.

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

PRIORITY_MIN - Используется для контекстной или справочной информации, такой как информация о погоде или информация о контекстном местоположении. Уведомления о минимальном приоритете не отображаются в строке состояния. Пользователь обнаруживает их при расширении оттенка уведомления.

Для получения дополнительной информации проверить следующую ссылку: http://developer.android.com/design/patterns/notifications.html#correctly_set_and_manage_notification_priority

+0

Я хочу вызвать уведомление хедз-ап, но приоритет для PRIORITY_HIGH не работает для меня. – Shruti

+1

Приложения все еще могут занимать верхнюю позицию –

+0

приоритет max устарел. –

1

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

setDefaults(NotificationCompat.DEFAULT_VIBRATE) 

ссылка находится в javadoc:

уведомление, что вибрирует более Лик чтобы быть представленным как уведомление о хедз-ап, на некоторых платформах.

Полный пример для уведомления хедз-ап:

NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(context) 
      .setSmallIcon(R.drawable.some_small_icon) 
      .setContentTitle("Title") 
      .setContentText("This is a test notification with MAX priority") 
      .setPriority(Notification.PRIORITY_MAX) 
      .setDefaults(NotificationCompat.DEFAULT_VIBRATE); 
Смежные вопросы