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.mzph.cn/news/612469.shtml

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

相关文章

【LeetCode每日一题】2645. 构造有效字符串的最少插入数(计算组数+动态规划+考虑相邻字母)

2024-1-11 文章目录 [2645. 构造有效字符串的最少插入数](https://leetcode.cn/problems/minimum-additions-to-make-valid-string/)方法一:计算组数方法二:动态规划方法三: 考虑相邻字母 2645. 构造有效字符串的最少插入数 方法一:计算组数 …

uniapp中实现H5录音和上传、实时语音识别(兼容App小程序)和波形可视化

文章目录 Recorder-UniCore插件特性集成到项目中调用录音上传录音ASR语音识别 在uniapp中使用Recorder-UniCore插件可以实现跨平台录音功能,uniapp自带的recorderManager接口不支持H5、录音格式和实时回调onFrameRecorded兼容性不好,用Recorder插件可避免…

Leetcode 416 分割等和子集

题意理解: 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 即将数组的元素分成两组,每组数值sum(nums)/2 若能分成这样的两组,则返回true,否则返回false 本质上…

RobotStudio机器人码垛课程设计

一、任务需求 1、创建动态夹具(600*400*50) 2、创建物料(600*400*200) 3、起码按顺序码垛放置 4 个不同位置 二、软件常用操作及其快捷键 (推荐自己按这些步骤操作一下,能明白这些操作的具体意义&#…

Java版直播商城:电商源码、小程序、三级分销及 免 费 搭 建 方案

一、技术选型 java开发语言:java是一种跨平台的编程语言,适用于大型企业级应用开发。使用java开发直播商城可以保证系统的稳定性和可扩展性。 spring boot框架:spring boot是一个快速构建spring应用的框架,简化了开发过程&#xf…

[渗透测试学习] Clicker - HackTheBox

文章目录 信息搜集代码审计反弹shell提权 信息搜集 nmap扫描一下端口 nmap -sV -sC -v -p- --min-rate 1000 10.10.11.232扫描结果 22/tcp open ssh 80/tcp open http Apache httpd 2.4.52 ((Ubuntu)) //重定向 111/tcp open rpcbind 2-4 (RPC #100000)我们往…

如何查看Ubuntu内存的使用情况

在Linux系统中,了解内存使用情况对于系统管理和性能优化非常重要。以下是一些常用的命令,以及它们的详细使用说明: 1. free 命令 用途: free 命令用于显示系统中空闲和已用的物理内存及交换内存。示例: 输入命令: free -m输出解释: 这将以M…

python 爬虫 request get或post传参

爬虫传参 import requestsurl http://www.xxx# get 或 post 传参数据 data {"pageNo": 1652,"pageSize": 10, }headers {Cookie: ,Host: ,Origin: ,Referer: ,User-Agent: , }# get 请求 # res requests.get( # url, # paramsdata, # hea…

重磅消息:2024北京国际智能科技展览会(世亚智博会)官宣定档

在数字新时代的浪潮下,智能科技作为推动社会进步的重要力量,正在以前所未有的速度改变着我们的生活和工作方式。为了进一步推动智能科技的发展和交流,2024北京国际智能科技展览会(简称世亚智博会)将于2024年6月份在北京…

[C#]winform使用纯opencvsharp部署yolox-onnx模型

【官方框架地址】 https://github.com/Megvii-BaseDetection/YOLOX 【算法介绍】 YOLOX是一个高性能的目标检测算法,它是基于YOLO(You Only Look Once)系列算法的Anchor Free版本。YOLOX由Megvii Technology的研究团队开发,并在…

在 Windows IIS 生成证书签名请求(CSR)

本操作方法将逐步指导您生成证书签名请求(CSR)。 这些过程已在Windows 10的IIS 10上进行了测试,但也将在IIS 7.x和8.x中运行。 启动IIS管理器。 Start 开始 IIS管理器。 另外一种快速的方法是打开 运行 命令,然后键入 inetmgr 并…

深度学习算法应用实战 | 利用 CLIP 模型进行“零样本图像分类”

文章目录 1. 零样本图像分类简介1.1 什么是零样本图像分类?1.2 通俗一点的解释 2. 模型原理图3. 环境配置4. 代码实战5. Gradio前端页面5.1 什么是 Gradio ? 6 进阶操作7. 总结 1. 零样本图像分类简介 1.1 什么是零样本图像分类? “零样本图像分类”(Zero-shot …

使用懒加载 + 零拷贝后,程序的秒开率提升至99.99%

目录 一、5秒钟加载一个页面的真相二、优化四步走1、“懒加载”2、线上显示 就读取一个文件,为什么会慢呢? 三、先从上帝视角,了解一下啥子是IO流四、写个栗子,测试一下1、通过字符输入流FileReader读取2、通过缓冲流BufferedRea…

Spark---RDD序列化

文章目录 1 什么是序列化2.RDD中的闭包检查3.Kryo 序列化框架 1 什么是序列化 序列化是指 将对象的状态信息转换为可以存储或传输的形式的过程。 在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的…

YOLOv8改进 | 检测头篇 | 利用DynamicHead增加辅助检测头针对性检测(四头版本)

一、本文介绍 本文给大家带来的改进机制是针对性的改进,针对于小目标检测增加P2层,针对于大目标检测增加P6层利用DynamicHead(原版本一比一复现,全网独一份,不同于网上魔改版本)进行检测,其中我们增加P2层其拥有更高的分辨率,这使得模型能够更好地捕捉到小尺寸目标的细节…

docker启动mongo

用户名:root 密码:123456 version: 3.1 services:mongo:image: mongo:7container_name: mongorestart: alwaysports:- 27017:27017volumes:- /opt/data/mongo:/data/dbenvironment:TZ: Asia/ShanghaiMONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROO…

第10.2节-简历匹配性和表现力自查

(点击即可收听) 多次投递简历却没有得到回复时,我们应该对自己的简历进行检查和评估,对比那些优秀的简历 找到自己的不足之处并进行修改。 优秀的简历是反复修改出来的,对于每一个需要靠简历找工作的求职者而言,没有完美的简历&am…

【GoLang入门教程】Go语言几种标准库介绍(六)

文章目录 前言几种库Net库 (网络库,支持 Socket、HTTP、邮件、RPC、SMTP 等)重要的子包和功能:示例 OS库(操作系统平台不依赖平台操作封装)主要功能:示例 path库(兼容各操作系统的路径操作实用函数)常用函数&#xff1…

在ubuntu上检查内存使用情况的九种方法

在 Ubuntu 中,可以通过 GUI(图形用户界面)和命令行使用多种方法来监视系统的内存使用情况,监视 Ubuntu 服务器上的内存使用情况并不复杂;了解已使用和可用的内存量对于故障排除和优化服务器性能至关重要,因为内存对系统 I/O 速度至…

极狐 GitLab 冷知识:使用 Email 也可以创建 Issue?

前言 在使用 GitLab 时,创建 Issue 和 Merge Request 的方法,除了常规的使用 GitLab Web UI 进行操作和通过 API 调用操作,还有一些比较好玩的,比如使用 Email 来创建。 Incoming email 如果是 Self-Manager 的 GitLab 用户&am…