您的位置:首页 > 移动开发 > Android开发

如何设置常驻通知的同时通知栏不显示小图标&如何在兼容低版本的前提下调用高版本的api

2014-12-25 12:17 375 查看
相关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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐