2012-04-27 2 views
6

Я использую уведомление, позволяющее пользователю теперь, когда служба все еще работает. Теперь я хотел бы использовать подсветку для напоминания пользователю. (потому что это причудливо)Android notlight не работает

Уведомление работает нормально, но свет уведомления ничего не делает. Другие приложения прекрасно работают с учетом уведомления, (Gtalk, facebook)

это более или менее пример кода для уведомлений с добавлением этих флагов:

notification.ledARGB = 0xff00ff00; 
notification.ledOnMS = 100; 
notification.ledOffMS = 100; 
notification.flags |= Notification.FLAG_SHOW_LIGHTS; 

notification.flags |= Notification.FLAG_NO_CLEAR + Notification.FLAG_ONGOING_EVENT; 
mNotificationManager.notify(NOTIFICATION_ID, notification); 

и

notification.defaults |= Notification.DEFAULT_LIGHTS; 

вместо Безразлично Не работай.

Я отладки на Galaxy Nexus с Android 4.0, но цель этого приложения является Android 2.3.3

EDIT: это могло быть проблема разрешения? Если да, то какой? Я просмотрел все и не нашел подходящего разрешения для освещения уведомлений.

+0

Обязательного «Вы уверены, что у вас есть правильные разрешения для уведомления огней» – antlersoft

+0

хорошего вопроса, были я их получу? – trichner

+0

В AndroidManifes.xml файл –

ответ

2

Я думаю, что есть ошибка с оператором +, вам нужно или в:

notification.flags |= Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT; 

EDIT: если вы используете флаги, я думаю, правильным должно быть:

notification.flags |= Notification.FLAG_SHOW_LIGHTS 
+0

Это не ошибка, это особенность! Это Биты для установки, плюс работает отлично. Поскольку каждый флаг является еще одним битом, вы никогда не получите перенос. Но OR будет работать нормально. FLAG_SHOW_LIGHTS устанавливается, как вы видите в верхнем блокблоке, в соответствии с документацией это не требуется, если вы используете флаг DEFAULT_LIGHTS. – trichner

+0

Это ответ исправил его для меня .. спасибо nax –

2

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

notification.setLights(0xFF0000FF,100,3000); 
notification.setPriority(Notification.PRIORITY_DEFAULT); 

Здесь я показываю синий цвет водить для уведомления, которое будет оставаться в течение 100 мс и выключается в течение 3000 мс до пользователь разблокирует его устройство.

И проверить, если вы используете NotificationCompat (совместимость) класс, чем игнорировать метод SetDefaults и использовать SetLight, SetSound, Setvibration, и т.д.

 Смежные вопросы

  • Нет связанных вопросов^_^