当我使用内置闹钟应用程序设置闹钟时,通知区域右侧会出现一个图标。但如果我用AlarmManager设置闹钟,它就不会出现。有没有办法让这个图标显示出来?
我发现似乎闹钟实际上将记录写入ContentProvider而不是直接使用AlarmManager。我明天会试一试。
似乎提供商不打算被其他应用程序使用。
答案 0 :(得分:4)
有没有办法让这个图标显示出来?
该图标适用于作为固件一部分的闹钟应用程序。仅当用户具有活动的闹钟警报时,才会显示该图标。它不能由Android SDK直接操作。
答案 1 :(得分:2)
此图标是AlarmClock应用程序的一部分,而不是android SDK。 Android有一个内置(库存)AlarmClock应用程序,但许多供应商(如三星)正在用自己的替代它。因此,没有一种安全的方法可以从您的应用程序中显示该特定图标。
最好的方法是创建自己的图标,因为您正在创建一个设置闹钟的应用程序,并且您希望通知用户。
P.S。这是code of the Activity that displays the icon in the stock AlarmClock application,如第181行所示,图标的drawable是 R.drawable.stat_notify_alarm 而不是Android.R.drawable.stat_notify_alarm所以你不能使用它。
希望这会有所帮助......
答案 2 :(得分:1)
(在相关问题的自我回答中交叉发布:Controlling the Alarm icon in status bar)
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。
确实是这样。
如果您使用此功能,如果将来发生故障,请不要感到惊讶 随机地在某些设备上不起作用。
答案 3 :(得分:0)
根据我的理解,您会想知道如何在通知区域中显示图标。
你必须自己编程。文档很好地概述了这一点。
http://developer.android.com/guide/topics/ui/notifiers/notifications.html