如何设置常驻通知的同时通知栏不显示小图标&如何在兼容低版本的前提下调用高版本的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 = 透明图标;
使用这种方法来实现思路:通知的小图标总在最右,且为透明,是一种假象。
存在的问题:某些情况下,会是这样的显示:
![](https://img-blog.csdn.net/20141225124425859?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmF0aWFvdHV6aV96cQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
两个图标的中间部分就是设置的透明的图标。
该方法,放弃。
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是如何实现的,发现以下信息
![](https://img-blog.csdn.net/20141225125055944?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmF0aWFvdHV6aV96cQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这表明,这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。
遇到这两个问题的起因:应用需要展示常驻通知栏的通知来让用户快速新建任务,同时不希望在通知栏展示出小图标,只用下拉通知栏时才显示这条常驻通知。因为小图标的显示会让用户误以为有新消息。。而且有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。
相关文章推荐
- JQuery ajax 如何设置同步调用(同时只能触发一个函数) 解决与层显示信息时候的冲突问题
- 如何设置Windows 7通知栏重新显示电源按钮
- Win7系统中,如何设置QQ、酷狗等软件图标在电脑右下角显示?
- APP API需要同时维护多个版本如何优雅的设计?
- IntelliJ IDEA中如何设置同时打开多个文件且分行显示
- IntelliJ IDEA 中如何设置同时打开多个文件且分行显示---即如何设置tabs
- 如何设置Windows7任务栏通知区图标的三种方法介绍
- 如何在Win10启用Win7/Win8.1通知区域图标设置
- Android低版本上如何调用高版本API
- Android APP如何设置显示图标
- 解决Notification不显示的问题:图标不设置,通知也不会显示
- 黄聪:360、chrome开发插件扩展如何跨域调用其他网站的信息并且显示在扩展、tab中的api
- 在微信上面如何显示自己公司所有产品,连锁店的地理位置,如何调用高德云图API
- 黄聪:WIN7声音图标无法显示,设置显示图标和通知也无效 解决办法
- IntelliJ IDEA 中如何设置同时打开多个文件且分行显示---即如何设置tabs
- APP API需要同时维护多个版本如何优雅的设计?
- 如何使用CSS设置<input>标签的背景小图标 简单
- [iOS]关于如何在项目中同时适配低版本和高版本的API的一点小见解
- Win8如何设置让计算机图标返回桌面默认桌面没有显示
- 检查app版本更新并调用系统下载并显示到通知栏