当前位置:   article > 正文

Android Notification(Android 8.0)_adnroid的notification8.0

adnroid的notification8.0

概述:

Android O(也就是SDK26版本) 引入了 通知渠道(Notification Channels)以提供统一的系统来帮助用户管理通知,如果是针对 android O 为目标平台时,必须实现一个或者多个通知渠道,以向用户显示通知。若并不以 Android O 为目标平台,当应用运行在 android O 设备上时,其行为将与运行在 Android 7.0 上时相同。
Android O 的用户可以使用一致的系统 UI 管理大多数与通知有关的设置。所有发布至通知渠道的通知都具有相同的行为。当用户修改任何下列特性的行为时,修改将作用于通知渠道:

  • 重要性
  • 声音
  • 振动
  • 在锁屏上显示
  • 替换免打扰模式

官方文档:https://developer.android.google.cn/training/notify-user/build-notification

一、Android系统通知基本操作

谷歌原生8.0系统显示如下:
这里写图片描述
如果向左滑动通知,则会出现两个开关,一个是设置该应用的具体通知规范,另一个可以设置让该应用的通知推迟一段时间推送。
这里写图片描述

设置具体通知规范:
这里写图片描述
这里写图片描述

设置通知休眠时间:
这里写图片描述

1.1 通知优先级和重要性

Android O 弃用了为单个通知设置优先级的功能。创建通知渠道时可以设置建议重要性级别。为通知渠道指定的重要性级别适用于发布至该渠道的所有通知消息。可以配置五个级别中的一个,这些级别代表着通知渠道可以打断用户的程度,范围是 IMPORTANCE_NONE(0)至 IMPORTANCE_HIGH(4)。默认重要性级别为 3:在所有位置显示,发出提示音,但不会对用户产生视觉干扰。创建通知渠道后,只有系统可以修改其重要性。用户可以在设置中找到。
这里写图片描述
这里写图片描述
这里写图片描述

1.2 创建通知渠道

以下步骤创建通知渠道::
1. 构建一个在软件包内具有唯一 ID 的通知渠道对象。
2. 为该通知渠道对象配置所需的任何初始设置(例如提示音以及对用户可见的可选说明)。
3. 将通知渠道对象提交到通知管理器。
注意:如果试图使用初始值创建的通知渠道已存在,不会执行任何操作,因此启动应用时可以放心地执行以上步骤序列。以下示例代码演示的是如何创建具有低重要性级别和自定义振动模式的通知渠道。

    /**
     * 创建通知渠道
     * @param channel_id 渠道id
     * @param channel_name 渠道名称
     * @param channel_desc 渠道描述
     * @param importance 渠道优先级
     * @param group_id 渠道组,若没有渠道组,则传null
     */
    @RequiresApi(api = 26)
    private void createNotificationChannel(String channel_id, String channel_name,String channel_desc,int importance,String group_id){
        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        //配置通知渠道id,渠道名称(用户可以看到),渠道优先级
        NotificationChannel mChannel = new NotificationChannel(channel_id, channel_name,importance);
        //配置通知渠道的描述
        mChannel.setDescription(channel_desc);
        //配置通知出现时的闪灯(如果 android 设备支持的话)
        mChannel.enableLights(true);
        mChannel.setLightColor(Color.RED);
        //配置通知出现时的震动(如果 android 设备支持的话)
        mChannel.enableVibration(true);
        mChannel.setVibrationPattern(new long[]{
  100, 200, 100, 200});
        //配置渠道组
        if(group_id!=null){
            mChannel.setGroup(group_id);//设置渠道组
        }
        //在NotificationManager中创建该通知渠道
        manager.createNotificationChannel(mChannel);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

可以通过调用 createNoti

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/320133
推荐阅读
相关标签
  

闽ICP备14008679号