Android 通知简介

Android 通知简介

1. 基本通知

图1: 基本通知详情

 

  • 小图标 : 必须提供,通过 setSmallIcon( ) 进行设置.
  • 应用名称 : 由系统提供.
  • 时间戳 : 由系统提供,也可隐藏时间.
  • 大图标(可选) : 可选内容(通常仅用于联系人照片,请勿将其用于应用图标),通过setLargeIcon( ) 进行设置.
  • 标题 : 可选内容,通过 setContentTitle( ) 进行设置.
  • 正文文本 : 可选内容,通过 setContentText( ) 进行设置.

2. 通知操作

        尽管并非强制要求,但每个通知都应在用户点按时打开相应的应用 Activity。除了这种默认的通知操作之外,还可以添加可在通知中完成与应用相关任务的操作按钮(通常不需要打开 Activity),一个通知最多可以提供三个操作按钮供用户快速相应通知.

图2: 带有一个个操作按钮的通知

 图3: 点击 “ REPLY ” 按钮会打开文本输入框

参考: 在Android 10 (API级别29)和更高版本中,如果应用不提供自己的通知操作按钮,则系统会自动生成通知操作按钮.

3. 通知模板

(1) 标准模板

标准模板适用于大多数通知,它允许使用简洁文本、大图标和操作。

图4: 标准通知模板  

 

(2) 大文本模板 (BigTextStyle)

        默认情况下,通知的文字内容会被截断以放在一行。如果需要长一些的通知,可以通过应用模板启用更大的展开式文本区域。

图5: 大文本模板的通知

(3) 大图模板 (BigPictureStyle)

       大图模板专为包含图片的通知而设计。收起后,通知将显示图片的大图标缩略图。展开后,通知会显示更大的预览。

图6: 大图模板的通知

(4) 进度模板

        进度模板专为用户发起的需要时间才能完成的活动而设计。展开后,使用此模板的通知会显示进度条,并且还会包含“取消”操作,以便用户终止此 activity。(不可取消的活动不要求发送通知。)

图7: 进度模板

(5) 媒体模板 (MediaStyle)

媒体模板旨在让用户能够控制当前从应用中播放的媒体。

  • 收起时,通知最多可以显示三项操作。大图标可以显示相关图片,例如专辑封面。
  • 展开时,通知会显示最多 5 个操作(使用较大的图片)或 6 个操作(不带图片)。通知的背景和其他元素会自动继承图片的颜色。

图8: 媒体模板

(6) 消息模板 (MessagingStyle)

消息模板专为实时通信而设计。展开后,使用此模板的通知可让用户在通知中回复消息。

图9: 消息模板

(7) 通话模板 (CallStyle)

通话模板生成大格式通知,其中包含大图片附件并指示来电或去电。

图10: 通话模板

4. 抽屉式通知栏

Android 中的抽屉式通知栏通常按时间倒序显示通知,并受到以下条件的影响:

  • 应用声明的通知优先级或重要性
  • 通知最近是否通过提示音或振动提醒用户
  • 通知是否与任何人相关,这些人是不是已加星标的联系人
  • 通知是否表示重要的持续性活动(例如正在进行的通话或正在播放音乐)
  • Android 操作系统通过在列表顶部和底部添加强调效果来改变某些通知的外观,帮助用户扫描内容

图11: 抽屉式通知栏中的通知

5. 处理过时通知

      抽屉式通知栏旨在向用户显示与当前时刻相关的信息。如果早前的通知已经过时,即不再相关,可将其关闭,这样用户就看不到该通知。

图12: 刚收到的文本显示在抽屉式通知栏中,并在底部显示优先级较低的通知


6. 提醒式屏幕

        从 Android 5.0 开始,通知可以短暂地显示在浮动窗口中,称之为提醒式通知。这种行为通常适用于用户应立即知晓的重要通知,而且仅在设备未锁定时才会显示。

图13: 显示在前台应用前面的提醒式通知

       提醒式通知会在应用发出通知后立即出现,稍后便会消失,但仍照常显示在抽屉式通知栏中。使用场景如下:

  1. 用户的 Activity 处于全屏模式(应用使用 fullScreenIntent)。
  2. 通知的优先级很高,且在搭载 Android 7.1(API 级别 25)及更低版本的设备上使用铃声或振动。
  3. 在搭载 Android 8.0(API 级别 26)及更高版本的设备上,通知渠道的重要程度比较高。

7. 锁定屏幕

从 Android 5.0 开始,通知可以显示在锁定屏幕上。

       可以采用编程方式设置应用在安全锁定屏幕上所发布通知的详情可见等级,甚至可以设置通知是否显示在锁定屏幕上。

       用户可以通过系统设置来选择锁定屏幕通知的详情可见等级,包括选择停用所有锁定屏幕通知。从 Android 8.0 开始,用户可以选择停用或启用各个通知渠道的锁定屏幕通知。

图14: 锁定屏幕上已隐藏敏感内容的通知

(1) 设置锁定屏幕公开范围 : setVisibility( )

 

  • VISIBILITY_PUBLIC  : 显示通知的完整内容
  • VISIBILITY_SECRET : 不在锁定屏幕上显示该通知的任何部分
  • VISIBILITY_PRIVATE : 显示基本信息,例如通知图标和内容标题,但隐藏通知的完成内容

      当设置 VISIBILITY_PRIVATE时,可以提供通知内容的备用版本,以隐藏特定详细信息。例如,短信应用可能会显示一条通知,提示“您有1条新短信”,但是隐藏了短信内容和发件人。

图15: 不同隐私级别的锁屏通知

8. 提醒式通知

       从 Android 5.0 开始,通知可以短暂地显示在浮动窗口中,称之为提醒式通知。这种行为通常适用于用户应立即知晓的重要通知,而且仅在设备未锁定时才会显示。

图16: 显示在前台应用前面的提醒式通知

 

提醒式通知会在应用发出通知后立即出现,稍后便会消失,但仍照常显示在抽屉式通知栏中。

例如,以下情况可能会触发提醒式通知:

  • 用户的 Activity 处于全屏模式(应用使用fullScreenIntent)。
  • 通知的优先级很高,且在搭载 Android 7.1(API 级别 25)及更低版本的设备上使用铃声或振动。
  • 在搭载 Android 8.0(API 级别 26)及更高版本的设备上,通知渠道的重要程度比较高。

9. 显示紧急消息

显示紧急的时效性消息,例如来电或响铃警报。在这些情况下,可以将全屏 Intent 与通知关联。调用通知时,根据设备的锁定状态,用户会看到以下情况之一:

  • 如果用户设备被锁定,会显示全屏 Activity,覆盖锁屏。
  • 如果用户设备处于解锁状态,通知以展开形式显示,其中包含用于处理或关闭通知的选项。

参考 : 包含全屏Intent的通知有很强的干扰性,因此这类通知只能用于最紧急的时效性通知

10. 通知更新和分组

       将这些孤立的通知分为一组(可在搭载 Android 7.0 及更高版本的设备上这样做)。借助通知组,可以以一条摘要的形式在抽屉式通知栏中将多个通知收拢成一条通知消息。用户便可以展开通知以查看每个通知的详情。

用户可以逐级展开通知组以及其中的每条通知以查看详情。

图12: 分组通知收起和展开的视图

参考:如果同一个应用发出4条或更多通知且未指定分组,系统会自动将这些通知分为一组

11. 通知的重要程度

        Android 利用通知的重要程度来决定通知应在多大程度上干扰用户(视觉上和听觉上)。通知的重要程度越高,干扰程度就越高。

       在搭载 Android 8.0(API 级别 26)及更高版本的设备上,通知的重要程度由通知发布到的渠道的 importance决定。用户可以在系统设置中更改通知渠道的重要程度。

       在搭载 Android 7.1(API 级别 25)及更低版本的设备上,每条通知的重要程度均由通知的 priority 决定。

图12: 渠道重要性级别

12. 设置系统范围的类别

​​​​​​​

         Android 使用一些预定义的系统范围类别来确定在用户启用勿扰模式后是否发出指定通知来干扰客户(例如:CATEGORY_ALARMCATEGORY_REMINDERCATEGORY_EVENTCATEGORY_CALL)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/337679.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

念数字(C语言)

做法非常巧妙&#xff08;这也是我看别人的写法写的&#xff09; #include <string.h> #include <stdio.h> int main() { int i 0; char str[100000] { \0}; char arr[10][5] { "ling","yi","er","san",&…

压测必经之路,Jmeter分布式压测教程

01、分布式压测原理 Jemter分布式压测是选择其中一台作为调度机&#xff08;master&#xff09;&#xff0c;其他机器作为执行机&#xff08;slave&#xff09;&#xff1b;当然一台机器也可以既做调度机&#xff0c;也做执行机。 调度机执行脚本的时候&#xff0c;master将会…

阿里云 云数据库 Redis 版测评

1. 试用 地址&#xff1a;https://developer.aliyun.com/topic/freetier/database 点击试用 选择相应信息后点击立即试用&#xff0c;此处务必注意ECS和Redis需要在一个地域(可用区)&#xff0c;否则后续连接不方便。 2. 创建实例 购买后&#xff0c;进入控制台&#xff0c…

微信小程序的基本使用1:数据绑定同步,导航方式,导航传参,全局配置,下拉刷新,上拉触底等

各组件属性参考微信官方文档&#xff1a;微信开放文档 视图容器 scroll-view 可滚动视图区域&#xff08;轮播图&#xff09;。使用竖向滚动时&#xff0c;需要给scroll-view一个固定高度&#xff0c;通过 WXSS 设置 height。组件属性的长度单位默认为px&#xff0c;2.4.0起支…

链上数据分析:解读加密生态的秘密武器

作者&#xff1a;shellyfootprint.network 数据源&#xff1a; Wallet Profile 在加密货币的世界里&#xff0c;信息是力量。但如何获取真实、有价值的数据呢&#xff1f;普通个人投资者浏览 Reddit 帖子或观看 YouTube 视频&#xff0c;并根据基本价格图表做出投资决定。这种…

AirSim 的 ROS 功能包测试

参考链接&#xff1a; Ubuntu18.04搭建AirSimROS仿真环境_airsim ros-CSDN博客 ROS: AirSim ROS Wrapper - AirSim 1.编译 ros 包&#xff08;必须是 gcc-8&#xff09; 如果您的默认 GCC 不是 8 或更高&#xff08;使用 gcc --version 检查&#xff09;&#xff0c;那么编译…

离散数学-二元关系

4.1关系的概念 1)序偶及n元有序组 由两个个体x和y&#xff0c;按照一定顺序排序成的、有序数组称为有序偶或有序对、二元有序组&#xff0c; 记作<x&#xff0c;y>&#xff0c;其中x是第一分量&#xff0c;y是第二分量。 相等有序偶&#xff1a;第一分量和第二分量分…

Python-面向对象

面向对象 1.初识对象1.1理解使用对象完成数据组织的思路 2.成员方法2.1类的定义和使用语法2.2成员方法的使用 3.类和对象4.构造方法4.1使用构造方法向成员变量赋值 5.其他内置方法5.1__str__字符串方法5.2__lt__小于符号比较方法5.3__le__小于等于比较符号5.4__eq__比较运算符实…

蓝凌EIS智慧协同平台 UniformEntry.aspx sql注入漏洞

漏洞描述&#xff1a; 蓝凌EIS智慧协同平台是一个简单、高效的工作方式专为成长型企业打造的沟通、协同、社交的移动办公平台&#xff0c;覆盖OA、沟通、客户、人事、知识等管理需求&#xff0c;集合了非常丰富的模块&#xff0c;满足组织企业在知识、项目管理系统建设等需求的…

找出字符串中第一个匹配项的下标(Leetcode28)

例题&#xff1a; 分析&#xff1a; 题目的意思就是&#xff1a; 先给出一个字符串pattern&#xff0c;要拿着pattern字符串和原始字符串&#xff08;origin&#xff09;比对&#xff0c;若在origin中找到了pattern字符串&#xff0c;则返回pattern字符串在原始字符串origin中的…

机器学习笔记:时间序列异常检测

1 异常类型 1.1 异常值outlier 给定输入时间序列&#xff0c;异常值是时间戳值其中观测值与该时间序列的期望值不同。 1.2 波动点&#xff08;Change Point&#xff09; 给定输入时间序列&#xff0c;波动点是指在某个时间t&#xff0c;其状态在这个时间序列上表现出与t前后…

buuctf[极客大挑战 2019]BabySQL--联合注入、双写过滤

目录 1、测试万能密码&#xff1a; 2、判断字段个数 3、尝试联合注入 4、尝试双写过滤 5、继续尝试列数 6、查询数据库和版本信息 7、查询表名 8、没有找到和ctf相关的内容&#xff0c;查找其他的数据库 9、查看ctf数据库中的表 10、查询Flag表中的字段名 11、查询表…