Главная » Разработка для Android » Индикация с помощью светодиодов

0

Объект Notification включает в себя свойства для настройки цвета и ча- стоты мерцания  светодиодов устройства.

ВНИМАНИЕ

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

Свойство  ledARGB  может устанавливать цвет для светодиодной  под- светки. Свойства  ledOffMS  и ledOnMS позволяют  регулировать частоту и поведение светодиодов. Вы можете включить светодиоды, присвоив свой- ству ledOnMS значение 1, а ledOffMS – 0. Присвоив  им обоим значения  0, светодиоды можно выключить.

Настроив работу со светодиодами,  необходимо  также добавить  флаг

FLAG_SHOW_LIGHTS к свойству flags объекта Notification.

В следующем  фрагменте  кода показано,  как включить  на устройстве красный светодиод:

notification.ledARGB = Color.RED; notification.ledOffMS = 0; notification.ledOnMS = 1;

notification.flags = notification.flags | Notification.FLAG_SHOW_LIGHTS;

Контроль  над цветом и частотой мерцания  дает вам одну возможность для передачи информации пользователям.

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

int color;

if (quake.getMagnitude() < 5.4)

color = Color.GREEN;

else if (quake.getMagnitude() < 6)

color = Color.YELLOW;

else

color = Color.RED;

newEarthquakeNotification.ledARGB = color; newEarthquakeNotification.ledOffMS = (int)vibrateLength; newEarthquakeNotification.ledOnMS = (int)vibrateLength; newEarthquakeNotification.flags = newEarthquakeNotification.flags |

Notification.FLAG_SHOW_LIGHTS;

ПРИМЕЧАНИЕ

В настоящее время эмулятор Android не умеет визуально иллюстриро- вать активность светодиодов.

Текущие и настойчивые уведомления

Вы можете делать уведомления текущими  и/или настойчивыми, уста- навливая флаги FLAG_INSISTENT и FLAG_ONGOING_EVENT.

Уведомления, помеченные как текущие, используются для представле- ния событий, которые выполняются в данный момент времени (например, загрузка  файла,  фоновое  проигрывание музыки). Текущие  уведомления необходимы для Сервисов, работающих на переднем плане, о которых шла речь ранее в этой главе. Пример установки флагов:

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

В расширенной статусной строке текущие события отделены от обыч- ных, как показано на рис. 9.6.

Рис. 9.6.

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

В следующем  фрагменте  кода показано,  как сделать уведомление  на- стойчивым:

notification.flags = notification.flags | Notification.FLAG_INSISTENT;

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии