控制状态栏中的警报图标

时间:2014-04-16 09:18:49

标签: android alarmmanager alarm android-alarms undocumented-behavior

此问题涉及Android版Lollipop之前的版本。对于Lollipop API,请检查相关问题:


我想知道如何在状态栏中打开/关闭系统警报图标,如下图所示:

Android system Alarm icon

根据我对系统的理解,以及我过去阅读的内容,它由内置系统闹钟应用程序控制。第三方应用程序无法在无根设备上对其进行控制。我们没有理由能够控制它。

然而,及时v1.2.7控制我的无根Galaxy Nexus v4.2.1上的此图标,& Nexus 5 v4.4.2。所以有可能。

我想知道在无根设备上执行此操作的技术是什么。我怀疑是一个黑客或无证代码,但仍然有兴趣,如果有人可以阐明。

1 个答案:

答案 0 :(得分:8)

v5 Lollipop

Lollipop终于删除了那些私有API功能。这项技术不再适用于v5。

我已经发布了一个关于棒棒糖的新问题,其中有一个答案:

预棒棒糖

这是使用私有api 属性完成的方式:

protected void setStatusBarIcon(boolean enabled)
{
    Intent alarmChanged = new Intent("android.intent.action.ALARM_CHANGED");
    alarmChanged.putExtra("alarmSet", enabled);
    sendBroadcast(alarmChanged);
}

感谢Andy Savage对此Google网上论坛主题:


重要说明:如上所述,它使用私有的,未记录的属性。所有常见的警告都适用于此,正如Dianne Hackborn在同一篇帖子中指出的那样:

  

请注意,当您看到类似的原始字符串时   (" android.intent.action.ALARM_CHANGED"和" alarmSet"),警告铃   你应该在脑海中使用私有API。

     

确实是这样。

     

如果您使用此功能,如果将来发生故障,请不要感到惊讶   随机地在某些设备上不起作用。