Измените “Индикатор импульсного уведомления” / настройку подсветки трекбола на Android (только Nexus One?)

StackOverflow https://stackoverflow.com/questions/2211543

Вопрос

На Nexus One (по крайней мере, в 2.1-update1, и я думаю, в 2.1) есть настройка в разделе Звук и дисплей:"Индикатор импульсного оповещения".Похоже, этого нет в изображении эмулятора "2.1 with Google APIs".Я еще не проверял никаких других устройств.

Индикатор импульсного оповещения:Многократно включайте индикатор трекбола для получения новых уведомлений http://chris.boyle.name/images/20100206-pulse-trackball.png

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

Я не видел этого в android.провайдер.Настройки.Система где живут многие другие вещи на этом экране, поэтому я заглянул в исходный код платформы.В NotificationManagerService есть несколько соответствующих частей, в enqueueNotificationWithTag в очереди с тегом и Обновление заблокировано.Это переходит в Аппаратный сервис что, кажется, уже давно не имеет смысла заботиться о пользовательских настройках.Я понятия не имею, где реализован этот параметр и как я мог бы на него повлиять.

Я полностью ожидаю, что ответ будет "для этого нет API" (возможно, это связано с тем, что это специфично для Nexus One), и что лучшее, что я могу сделать, это запланировать (используя Locale или что-то еще) намерение ACTION_DISPLAY_SETTINGS НАСТРОЙКИ ACTION_DISPLAY_SETTINGS чтобы напомнить мне установить флажок вручную, что было бы отстойно.Я надеюсь, что я что-то пропустил, или что гуглер читает это и можете сказать мне, что это планируется для добавления в API?

Это было полезно?

Решение

Я знаю, что умру мучительной смертью за использование недокументированного API (или, скорее, недокументированного имени настройки системы), но вот волшебная строка:

android.provider.Settings.System.putInt(context.getContentResolver(),
        "notification_light_pulse", on ? 1 : 0);

Найдено с помощью sqlite3 на моем собственном устройстве.

Вот это решение в удобном языковом плагине: http://chris.boyle.name/projects/ptlp

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top