Android O 8.0通知新特性
android 8.0通知新增了NotificationChannel(通知渠道),用来帮助管理用户通知。Android Studio新版会默认使用新版本的SDK编译项目,如果App的targetSDKVersion >=26或者Android Studio默认使用高于26的sdk作为targetSDK时,没有使用NotificationChannel就会出现在Android 8.0及以上系统通知无法展示的情况。
Android O 引入了 通知渠道(Notification Channels),以提供统一的系统来帮助用户管理通知,如果是针对 android O 为目标平台时,必须实现一个或者多个通知渠道,以向用户显示通知。比如聊天软件,为每个聊天组设置一个通知渠道,指定特定声音、灯光等配置。
通过NotificationChannel创建Notification
创建NotificationChannel对象时,除了构造方法里面的参数,其余参数是可选的,如果不设置会使用系统默认的,且部分参数因为手机厂商不同,可能没有效果比如设置桌面Launcher消息角标
public static String CALENDAR_ID = "channel_01";
private static Notification createNotification(Context context, NotificationManager notificationManager) {
Notification notification;NotificationCompat.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel notificationChannel = new NotificationChannel(CALENDAR_ID, "123",
NotificationManager.IMPORTANCE_DEFAULT);
// 设置渠道描述
notificationChannel.setDescription("测试通知组");
// 是否绕过请勿打扰模式
notificationChannel.canBypassDnd();
// 设置绕过请勿打扰模