Android 通知简介

news2025/1/13 10:23:52

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.coloradmin.cn/o/1374508.html

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

相关文章

中国社科院大学与美国杜兰大学金融管理硕士项目——熬过寒冬,春日暖阳已不远

在金融领域,寒冬似乎成了无法避免的阶段。然而,对于那些坚守岗位的金融从业者来说,熬过寒冬并非无望。正如冬去春来,只要我们采取明智的策略,迈出坚定的步伐,春日的暖阳已在不远方照耀。社科院与美国杜兰大…

SpringBoot+Hutool实现图片验证码

图片验证码在注册、登录、交易、交互等各类场景中都发挥着巨大作用,能够防止操作者利用机器进行暴力破解、恶意注册、滥用服务、批量化操作和自动发布等行为。 创建一个实体类封装,给前端返回的验证码数据: Data public class ValidateCodeV…

JS栈和堆:数据是如何存储的

JS栈和堆:数据是如何存储的 背景JavaScript 是什么类型的语言JavaScript 的数据类型内存空间栈空间和堆空间再谈闭包 背景 JS有多种数据类型:数字型,字符串型,数组型等,虽然 JavaScript 并不需要直接去管理内存&#…

都2024年了,FP卖家还不知道AB站怎么玩?

自从开始写FP独立站各种运营技巧和黑科技的文章,经常都会有朋友来私V,询问怎么进行AB站跳转。 可能是现在平台对于FP商家的限制越来越多,再加上如今到处都是“内卷”的电商环境,让FP商家生存越来越艰难,今天就着重讲一…

美当局批准现货比特币ETF,BTC不涨反跌?解读22页官方文件,SEC的担忧被完全解决了吗?

美东时间2024年1月10日下午,美SEC官宣批准现货比特币ETF的上市和交易,这是一个里程碑时刻,代表着加密资产类别获得主流采用的最重要一步。 11只获得批准的现货比特币ETF分别来自:BlackRock、Bitwise、Grayscale、Hashdex、Valkyri…

CAN201 计网大题收集

网络性能计算 e.g1 e.g2 木桶效应 e.g3 吞吐量 e.g4 时延 e.g5 时延 e.g5 e.g e.g6 拓展 e.g7 传输层 TCP D 拥塞控制算法 拥塞控制算法_哔哩哔哩_bilibili 慢开始,拥塞避免,快重传,快恢复 物理层 根据我印象好像不太需要学物理层这块…

科技成果鉴定测试的意义在哪?鉴定测试报告重要吗?

科技成果鉴定测试是指通过一系列的评估和验证过程,对科技成果所包含的技术特征、技术优势以及市场应用前景进行客观、准确的评估和证明的过程。科技成果鉴定测试可以对科技项目进行全面、系统的评估,从而找出项目的优势和不足之处,并为项目的…

usb静电防护芯片选择

方案1 USBLC6-2SC6 优缺点 优点:进出使用不同的焊盘,如果没有焊接好信号必定不能通过。有效的避免了虚焊导致故障。 缺点:不能省略,调试时也不能省略。 原理图 参考价格 参考来源 USB切换方案,多电脑共用USB方案…

零基础小白如何自学sql?

学习SQL对于数据分析和处理来说非常重要。SQL是一种强大的工具,可以帮助你与数据库沟通,提取,整理和理解数据。 以下是一些学习SQL的建议: 01 前期:SQL数据库学习 了解SQL的基本概念:首先,你…

求幸存数之和 - 华为OD统一考试

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 给一个正整数列nums,一个跳数jump,及幸存数量left。运算过程为:从索引为0的位置开始向后跳,中间跳过 J 个数字,命中索引为 J+1 的数字,该数被敲出,并从该点起跳,以此类推,直到幸存left个数为止。…

Java高级工程师20道面试题、答案及案例

文章目录 Java高级工程师面试题、答案及案例: 问题: 在Java中,如何实现线程安全的单例模式?请写出双重检查锁定(Double-Checked Locking)的实现方式。 答案与案例: public class Singleton {pri…

电机控制----------龙伯格观测器引入

一、建立龙波格观测器 通过求解A矩阵的特征值来判断,整个系统是否稳定。 二、状态空间方程

ChatGPT可以帮你做什么?

学习 利用ChatGPT学习有很多,比如:语言学习、编程学习、论文学习拆解、推荐学习资源等,使用方法大同小异,这里以语言学习为例。 在开始前先给GPT充分的信息:(举例) 【角色】充当一名有丰富经验…

003-10-02【Spark官网思维笔记】香积寺旁老松树边马大爷家女儿大红用GPT学习Spark入门知识

003-10-02【Spark官网思维笔记】香积寺旁老松树边马大爷家女儿大红用GPT学习Spark入门知识. Spark 快速入门快速开始使用 Spark Shell 进行交互式分析:独立的应用程序其他 1, 使用 Spark Shell 进行交互式分析1.1 基本1.2 有关Dataset操作的更多信息1.3 缓存 2&…

STL-list的使用简介

目录 ​编辑 一、list的底层实现是带头双向循环链表 二、list的使用 1、4种构造函数(与vector类似)​编辑 2、迭代器iterator 3、容量(capicity)操作 4、element access 元素获取 5、增删查改 list modifiers 6、list的迭…

YOLOv8优化策略:轻量化改进 | 华为Ghostnet,超越谷歌MobileNet | CVPR2020

🚀🚀🚀本文改进:Ghost bottleneck为堆叠Ghost模块 ,与YOLOV8建立轻量C2f_GhostBottleneck 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1.Ghostnet介绍 论文: https://arxiv.org/pdf/1911.11907.…

Js--数组(三)

1.什么是数组? 数组:(Array)是一种可以按顺序保存数据的数据类型 2.为什么要数组? 思考:如果我想保存一个班里所有同学的姓名怎么办? 场景:如果有多个数据可以用数组保存起来,然后放到一个变量…

合并 PDF 文件的7个免费软件

PDF 合并是将所需信息转移到一个文件夹中的最佳选择,因此,您需要最好的 pdf 合并软件。 在 PDF 中复制粘贴不同的格式然后进行编辑非常耗时。因此,请查看我们的首选免费软件以合并 PDF 文件。 此列表中的工具可让您一次处理大量文件&#x…

STM32 ADC采样调试笔记

最近在搞STM32L051系列一个小MCU,要用这个去采集两路ADC作为输入。期间也碰到过一些问题,顺便记录下。 ADC采集原理不说了,主要采集电压,用数字进行细分,这样就可以知道输入电压多少了,网上也有很多相关文…

【附源码】基于SSM+Java的题库管理系统的设计与实现

基于SSMJava的题库管理系统的设计与实现 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(We…