【问题标题】:Android, the alarm icon on the right side of notification area?Android,通知区右侧的闹钟图标?
【发布时间】:2012-05-13 15:32:37
【问题描述】:

当我使用内置闹钟应用程序设置闹钟时,通知区域右侧会出现一个图标。但如果我用 AlarmManager 设置警报,它就不会存在。有没有办法让那个图标显示出来?


我发现闹钟似乎实际上将记录写入 ContentProvider 而不是直接使用 AlarmManager。我明天试试看。

而且似乎提供程序不打算被其他应用程序使用。

【问题讨论】:

  • 如果您愿意涉足黑魔法(未记录的私有 api),您可以这样做 - 在下面添加答案

标签: android notifications


【解决方案1】:

有没有办法让那个图标显示出来?

该图标用于作为固件一部分的闹钟应用程序。只有当用户有一个活跃的闹钟闹钟时,该图标才会出现。 Android SDK 无法直接对其进行操作。

【讨论】:

    【解决方案2】:

    此图标是闹钟应用程序的一部分,而不是 android SDK。 Android 有一个内置(库存)闹钟应用程序,但许多供应商(如三星)正在用他们自己的替换它。因此,没有一种安全的方法可以从您的应用程序中显示该特定图标。

    最好的方法是制作自己的图标,因为您正在制作一个设置警报的应用程序并且您希望您的用户得到通知。

    附:这是code of the Activity that displays the icon in the stock AlarmClock application,您可以在第 181 行看到图标的可绘制对象是 R.drawable.stat_notify_alarm 而不是 Android.R.drawable.stat_notify_alarm,因此您无法使用它。

    希望对你有帮助……

    【讨论】:

      【解决方案3】:

      (从相关问题的自我回答中交叉发布:Controlling the Alarm icon in status bar


      v5 棒棒糖

      Lollipop 终于移除了那些私有 API 功能。从 v5 开始,此技术不再适用。

      我专门发布了一个关于 Lollipop 的新问题,希望很快能得到答案:

      棒棒糖前

      使用 private 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。

      确实如此。

      如果你使用它,如果它在未来发生故障,请不要感到惊讶 随机在某些设备上不起作用。

      【讨论】:

      • 昨天我得到了及时的更新,他们现在可以在右侧显示警报图标。变更日志说“支持新的警报 api 来显示图标”。有人知道哪个api是什么意思吗?在文档中找不到任何内容
      • @maksim 感谢您指出这一点。我发布了一个新问题来尝试了解新 API:Lollipop API for controlling the Alarm icon in status bar
      【解决方案4】:

      据我了解您的问题,您想知道如何让图标出现在通知区域中。

      您必须自己编程。文档很好地概述了这一点。

      http://developer.android.com/guide/topics/ui/notifiers/notifications.html

      【讨论】:

      • 谢谢。但实际上我想知道如何让图标出现在通知区域的右侧。如果无法像内置闹钟那样设置图标,自定义闹钟会看起来很奇怪。
      • 右边是什么?如果您希望对齐状态通知中的图像,您可以使用通知的自定义布局来做到这一点,该布局在页面底部进行了描述。
      • @jlindenbaum:我相信OP是指将图标放在状态栏的右侧。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多