我想将我正在进行的事件图标放在状态栏的第二个位置,就像 Skype 在登录时所做的那样。
4 回答
由于通知管理器管理通知,因此这是不可能的。获得第一个位置的唯一方法是拥有一个服务并调用startForeground() - 但如果另一个服务已经做了同样的事情,您的通知将位于第二个位置。
除此之外,没有其他方式可以影响该职位。如果您首先创建通知,那么您就处于第一位。如果另一个应用程序首先创建通知,那么您是第二个。
所以我去谷歌搜索这个答案,我在惊人的 StackOverflow 上找到了这个问题。虽然Notification.priority = Notification.PRIORITY_MIN
适用于 API 16 及更高版本,但做
Notification.when = 0
对于 API < 16 非常有效。
设置通知时,只需将 .when 字段设置为 Integer.MIN 或 Integer.MAX 即可分别在最左侧或最右侧显示通知。
在包括 ICS 的所有 Android 版本上,图标都按此字段排序。
在 JB (4.1) 上,您需要设置通知优先级以使其在左侧或右侧:
notification.priority = PRIORITY_MIN 右侧 notification.priority = PRIORITY_MAX 左侧
编辑:在平板电脑上,如果您使用 Notification.FLAG_FOREGROUND_SERVICE 或 startForeground,图标将位于右侧,而我试图将其移至左侧的所有操作都不起作用(在 ICS 上测试)。
http://grail.cba.csuohio.edu/~matos/notes/cis-493/lecture-notes/Android-Chapter23-Notifications.pdf
是一个很棒的文件!
查看示例:
产生通知。允许用户单击通知面板并执行适当的活动来参加消息。
很抱歉只发布链接。但是,这也会有帮助,我相信: Display status bar notification from service in android