在Nexus One(至少在2.1-update1中,我认为在2.1中)上,“声音和声音”下有一个设置.显示:“脉冲通知灯”.在“ 2.1 with Google APIs”仿真器映像中似乎没有出现这种情况.我尚未检查任何其他设备.
我想通过编程方式在没有用户干预的情况下进行设置,以便制作Locale插件,这样,当我在办公桌前醒来时,设备可以吸引我的注意力,而不会在有人凌晨4点向我发送垃圾邮件时照亮整个房间.非常明亮.
我在android.provider.Settings.System上没有看到它,该屏幕上还有许多其他内容,因此我在平台源代码中进行了查看. NotificationManagerService中有一些相关的部分,分别为enqueueNotificationWithTag和updateLightsLocked.这已进入HardwareService,这似乎已经超出了关心用户设置的程度.我不知道此设置在哪里实现或如何影响它.
我完全希望答案是“没有针对此的API”(可能与Nexus One相关),并且我能做的最好的事情就是安排(使用语言环境或其他方式)ACTION_DISPLAY_SETTINGS的意图来提醒我手动设置盒子,这很烂.我希望我错过了一些东西,或者是a Googler is reading this,可以告诉我是否打算将其添加到API中?
解决方法:
我知道我将因使用未公开的API(或更确切地说,未公开的系统设置名称)而痛苦地死去,但这是魔术的一句:
android.provider.Settings.System.putInt(context.getContentResolver(),
"notification_light_pulse", on ? 1 : 0);
发现在我自己的设备上使用sqlite3.
这是一个方便的Locale插件中的解决方案:http://chris.boyle.name/projects/ptlp