相关app :Worktile
遇到这两个问题的起因:应用需要展示常驻通知栏的通知来让用户快速新建任务,同时不希望在通知栏展示出小图标,只用下拉通知栏时才显示这条常驻通知。因为小图标的显示会让用户误以为有新消息。。而且有app实现了这种(any.do)
问题解决的路径:Google 查找相关解决办法。
1.http://stackoverflow.com/questions/2855110/android-no-icon-for-notification
其中某位answerer关键代码是:设置 notification.when = -Long.MAXVALUE; notification.icon = 透明图标;
使用这种方法来实现思路:通知的小图标总在最右,且为透明,是一种假象。
存在的问题:某些情况下,会是这样的显示:
两个图标的中间部分就是设置的透明的图标。
该方法,放弃。
2.http://stackoverflow.com/questions/2855110/android-no-icon-for-notification
某位answerer的回答:
This is now possible in Android 4.1; the reference implementation of the Jelly Bean status bar will suppress icons for PRIORITY_MIN notifications, although their content will still show in the notification panel.
查看官方文档发现,在api 16 增加了priority变量。然而,我的项目支持的最低版本是4.0。
该方法,暂时放弃。
3.Google any.do是如何实现的,发现以下信息
这表明,这Android 4.0及以下 是没有办法实现的,而方法2是估计是靠谱的方法。
那么,问题来了,如何在兼容低版本的前提下调用高版本的api ?
1.修改Project Build Target 为4.1.0(16)
2.在方法上增加注释@TargetApi(16)
3.实现代码
if (Build.VERSION.SDK_INT >= 16) {
notification.priority = Notification.PRIORITY_MIN;
}
完美解决。当然 4.0 还是会显示小图片,whatever。