Android 8.0 NotificationChannel 采坑实例
Android O 上Notification的新特性: 通知通道功能
1. 简介:
通知通道功能使开发者管理自己应用的通知成为一个组或者一个通道,用户可以通过通知通道完成设置通知,如:阻止所有通知,改变某个通道通知的优先级,是不是显示launch上的小圆点。通过这些方式来提升用户体验。
2.
1. 第一步:升级sdk版本,使用android studio开发 minsdkversion的版本不能小于26。否则不能使用新特性。
2.第二部:创建工程,最好将notificationchannel 放到util里面,封装成一个单独的类进行管理。从android的意图上分析,每个应用的通知都需要进行管理,包括通知的优先级都要通过通道进行统一进行管理,可以建立important_high/ importan_default/importan_minor/importan_low 四种通道。
创建通道的方法:
// 实例化一个channel对象
NotificationChannel androidChannel = new NotificationChannel(ANDROID_CHANNEL_ID, ANDROID_CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
ANDROID_CHANNEL_ID: 通道的id
ANDROID_CHANNEL_NAME:通道的名字(这个名字很重要,后面发送通知的时候指定的通道名字就是它)
最后一个参数:此通道通知的优先级
// 创建一个通道
notificationManager.createNotificationChannel(androidChannel);
3.新建一个通知,并发送出去
// 使用新的接口创建一个builder对象,指定该通知所属于的通道
builder = new Notification.Builder(getApplicationContext(), ANDROID_CHANNEL_NAME/*channel name*/)
// 发送通知
notificationManager.notify(id, builder.build())
另外:
mNotificationManager.createNotificationChannelGroup(new NotificationChannelGroup(groupId, groupName));这个接口也非常有意思。
对于具有多种用户的app,如某些社交应用有工作帐号和私人帐号,可以将定义不同用户下所有的channel为一个group进行管理。
Android 8.0 NotificationChannel 采坑实例的更多相关文章
- Android 8.0 的部分坑及对应解决方法
虽然 Android 9.0 都已经面世了,本篇文章写的有点迟了. 但是迟到好过不到,因此基于此这边还是记录一下项目中遇到的 Android 8.0 的坑及对应解决方法. 每次系统升级,虽然系统功能更 ...
- Android 5.0 到 Android 6.0 + 的深坑之一 之 .so 动态库的适配
(原创:http://www.cnblogs.com/linguanh) 目录: 前序 一,问题描述 二,为何会如此"无情"? 三,目前存在该问题的知名SDK 四,解决方案,1 对 ...
- 【转】Android M(6.0) 权限爬坑之旅
原文网址:https://yanlu.me/android-m6-0-permission-chasm/ 有一篇全面介绍Android M 运行时权限文章写的非常全面:Android M 新的运行时权 ...
- Android M(6.0) 权限爬坑之旅
坑一:用Android5.0编译的apk,在Android6.0上运行完全没有问题. 在Android6.0以上才需要在运行时请求权限,在旧Android版本上保留原有逻辑,安装时授予权限. 用旧版本 ...
- 浅谈Android Studio3.0更新之路(遇坑必入)
>可以参考官网设置-> 1 2 >> Fantasy_Lin_网友评论原文地址是:简书24K纯帅豆写的我也更新一下出处[删除]Fa 转自脚本之家 浅谈Android Studi ...
- nuxt 2.0采坑计之 (引入静态文件css)
nuxt 2.0采坑计之静态文件css 外部引入css 全局引用方法为 (在nuxt.config.js配置中在 module.exports = {} 中添加) head: { meta: ...
- Android Studio采坑记录
折腾了几个月的Android Studio,终于在今天被我搞定了 ( ̄▽ ̄)~* 开贴记录下,免得下次再次采坑 先说下我之前电脑的环境配置吧,sdk是几年前在网上下载别人整理出来的包,一直没有更新过 ...
- Android Studio 蓝牙开发实例——基于Android 6.0
因项目需要做一个Android 的蓝牙app来通过手机蓝牙传输数据以及控制飞行器,在此,我对这段时间里写的蓝牙app的代码进行知识梳理和出现错误的总结. 该应用的Compile Sdk Version ...
- UiAutomator2.0升级填坑记
UiAutomator2.0升级填坑记 SkySeraph May. 28th 2017 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.sk ...
随机推荐
- bzoj 3481 DZY Loves Math III——反演+rho分解质因数
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3481 推推式子发现:令Q=gcd(P,Q),ans=Σ(d|Q) d*phi(P/d).把 ...
- windows兼容dirent.h
尝试在windows下跑KCF算法,创建工程编译后出现: Error 4 error C1083: Cannot open include file: 'dirent.h': No such file ...
- UVA562(01背包均分问题)
Dividing coins Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Descriptio ...
- 超级简单的跨平台高性能音视频播放框架QtAv编译指南
目录 一.了解QtAv 二.相关文章 三.下载QtAv源码 四.下载QtAv依赖库 五.设置环境变量 1.gcc设置方式 2.msvc(cl)设置方式 六.编译 七.测试 一.了解QtAv 这几天抱着 ...
- checkbox的几种遍历方法
html代码如下: <div> <input type="checkbox" name="ckb" value="1" / ...
- Git小白到老鸟的进阶之路
点"计算机视觉life"关注,置顶更快接收消息! 小白:师兄,师兄,上次你教我的操作,我傻乎乎的执行了一遍,可是那个Git究竟是什么那? 师兄:小白莫慌,Git就是一种版本控制,小 ...
- 将字符串中的字符按Z字形排列,按行输出
示例1: Input: s = "PAYPALISHIRING", numRows = 3 Output: "PAHNAPLSIIGYIR" 示例2: Pyth ...
- 2012 Noip提高组 Day1
1262. [NOIP2012] Vigenère 密码 ★ 输入文件:vigenere.in 输出文件:vigenere.out 简单对比时间限制:1 s 内存限制:128 MB [ ...
- 洛谷P3338 [ZJOI2014]力(FFT)
传送门 题目要求$$E_i=\frac{F_i}{q_i}=\sum_{j=1}^{i-1}\frac{q_j}{(i-j)^2}-\sum_{j=i+1}^n\frac{q_j}{(j-i)^2}$ ...
- 海思3559A QT 5.12移植(带webengine 和 opengl es)
海思SDK版本:Hi3559AV100_SDK_V2.0.1.0 编译器版本:aarch64-himix100-linux-gcc 6.3.0(这个版本有点小问题,使用前需要先清除本地化设置) $ e ...