更改 Android 上的“脉冲通知灯”/轨迹球灯设置(仅限 Nexus One?)
-
18-09-2019 - |
题
在 Nexus One 上(至少在 2.1-update1 中,我认为在 2.1 中),声音和显示下有一个设置:“脉冲通知灯”。这似乎并不存在于“2.1 with Google APIs”模拟器映像中。我还没有检查过任何其他设备。
脉冲通知灯:重复脉冲轨迹球灯以获取新通知 http://chris.boyle.name/images/20100206-pulse-trackball.png
我想在没有用户交互的情况下以编程方式设置此设置,以便制作一个区域设置插件,这样当我在办公桌前醒来时,该设备可以吸引我的注意力,而不会在凌晨 4 点有人向我发送垃圾邮件时让它照亮整个房间。非常明亮。
我没看到它在 android.provider.Settings.System 这个屏幕上还有很多其他东西,所以我查看了平台源代码。在NotificationManagerService中有一些相关的部分,在 带标签的入队通知 和 更新LightsLocked. 。那会进入 硬件服务 这似乎远远超出了关心用户设置的范围。我不知道这个设置是在哪里实现的,也不知道我会如何影响它。
我完全期望答案是“没有这方面的 API”(可能与它是 Nexus One 特定的有关),并且我能做的最好的事情就是安排(使用 Locale 或其他东西)一个 Intent ACTION_DISPLAY_SETTINGS 提醒我手动设置盒子,这很糟糕。我希望我错过了什么,或者那个 一位 Google 员工正在阅读本文 可以告诉我这是计划添加到 API 中的吗?
解决方案
我知道我会因为使用未记录的 API(或者更确切地说,未记录的系统设置名称)而痛苦地死去,但这是神奇的一行:
android.provider.Settings.System.putInt(context.getContentResolver(),
"notification_light_pulse", on ? 1 : 0);
发现使用 sqlite3
在我自己的设备上。
这是一个方便的 Locale 插件中的解决方案: http://chris.boyle.name/projects/ptlp