Android:Google三方库之Firebase集成详细步骤(三)

Cloud Messaging

  1、清单文件配置

        a、(可选)一项扩展 FirebaseMessagingService 的服务。除了接收通知外,如果您还希望在后台应用中进行消息处理,则必须添加此服务。例如,您需要在前台应用中接收通知、接收数据载荷以及发送上行消息等,就必须扩展此服务

<serviceandroid:name=".java.MyFirebaseMessagingService"android:exported="false"><intent-filter><action android:name="com.google.firebase.MESSAGING_EVENT" /></intent-filter>
</service>

        b、(可选)应用组件中用于设置默认通知图标和颜色的元数据元素。如果传入的消息未明确设置图标和颜色,Android 就会使用这些值。

<meta-dataandroid:name="com.google.firebase.messaging.default_notification_icon"android:resource="@drawable/ic_stat_ic_notification" />
<meta-dataandroid:name="com.google.firebase.messaging.default_notification_color"android:resource="@color/colorAccent" />

         c、(可选)从 Android 8.0(API 级别 26)和更高版本开始,我们支持并推荐使用通知渠道。FCM 提供具有基本设置的默认通知渠道。如果您希望创建和使用自己的默认渠道,请将 default_notification_channel_id 设置为您的通知渠道对象的 ID(如下所示);只要传入的消息未明确设置通知渠道,FCM 就会使用此值。如需了解详情,请参阅管理通知渠道。

<meta-dataandroid:name="com.google.firebase.messaging.default_notification_channel_id"android:value="@string/default_notification_channel_id" />

以上三点都不配置的情况下:也能收到消息。如果需要在收到通知后,点击消息做特殊处理,就需要实现第一点。

2、获取设备注册令牌

初次启动您的应用时,FCM SDK 会为客户端应用实例生成一个注册令牌 (registration token)。如果您希望指定单一目标设备或者创建设备组,需要扩展 FirebaseMessagingService 并重写 onNewToken 来获取此令牌。

因为令牌可能会在初始启动后轮替,所以我们强烈建议您检索最近更新的注册令牌。

注册令牌可能会在发生下列情况时更改:

  • 应用在新设备上恢复
  • 用户卸载/重新安装应用
  • 用户清除应用数据

如果需要检索当前令牌,请调用 FirebaseMessaging.getInstance().getToken()。

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->if (!task.isSuccessful) {Log.w(TAG, "Fetching FCM registration token failed", task.exception)return@OnCompleteListener}// Get new FCM registration tokenval token = task.result//把当前获取的注册token传给自己服务器
})

监控令牌的生成

每当生成新令牌时,都会触发 onNewToken 回调函数。

/*** 需要继承:FirebaseMessagingService,重新onNewToken方法*/
override fun onNewToken(token: String) {Log.d(TAG, "Refreshed token: $token")//把当前token传给自己服务器sendRegistrationToServer(token)
}

上面的令牌需要调用后端接口传给自己服务器,如果只是需要记录安装时一次,可以只需要使用检索一次就好,不需要实时监听令牌的变化。

在所有的依赖Google服务的功能,都应该调用 GoogleApiAvailability.makeGooglePlayServicesAvailable()​​​​​​​​​​​​​​检查,如果没有就需要引导用户下载

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

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

相关文章

服务台需要跟踪的3个重要指标MTBF+MTTF+MTTR

衡量标准是IT服务管理的核心&#xff0c;可提供有关运营的见解&#xff0c;并帮助确定需要持续改进的领域。通常的服务台指标有助于展示内部运营效率。例如&#xff0c;衡量在规定时间内解决问题的工单数量的 SLA 是展示服务台效率的关键因素。另一方面&#xff0c;故障指标可帮…

阿里云服务器(vgn7i-vws) anaconda(py39)+pytorch1.12.0(cu113)

安装anaconda 2022 10 py3.9 wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh sha256sum Anaconda3-2022.10-Linux-x86_64.sh #校验数据完整性 chmod ux Anaconda3-2022.10-Linux-x86_64.sh #添加执行权限 bash Anaconda3-2022.10-Linux-x86_…

ate测试原理及ate测试系统(软件)知识科普 -纳米软件

ATE(Automatic Test Equipment)测试也叫自动化测试&#xff0c;通过计算机控制测试仪器对被测对象进行测试。以计算机编程代替人工测试&#xff0c;基于测试程序控制仪器并对待测品进行输入和输出信号检测分析&#xff0c;从而判断待测品的性能是否符合要求。 ATE测试需要根据测…

linux进程调度(一)-进程概述

一、什么是进程 进程是指计算机已运行的程序。程序本身只是指令、数据及其组织形式的描述。进程就是一个程序的执行实例&#xff0c;也就是正在执行的程序。在linux操作系统的中&#xff0c;进程就是一个担当分配系统资源CPU时间、内存的实体。进程控制的主要功能是对系统中的所…

Kafka报错under-replicated partitions

1 under-replicated partitions异常原因 Kafka报错under replicated partitions意味着某些分区的副本数量未达到预期的复制因子。 主要有两种原因&#xff0c; Broker故障 如果某个Kafka Broker发生故障&#xff0c;导致其中一些分区的副本不再可用&#xff0c;那么这些分区就…

2023年微软开源八个人工智能项目

自2001年软件巨头微软前首席执行官史蒂夫鲍尔默对开源&#xff08;尤其是Linux&#xff09;发表尖刻言论以来&#xff0c;微软正在开源方面取得了长足的进步。继ChatGPT于去年年底发布了后&#xff0c;微软的整个2023年&#xff0c;大多数技术都是面向开发人员和研究人员公开发…

Towhee介绍

官方网站&#xff1a;Towhee | Home - Towhee Towhee 是一个尖端框架&#xff0c;旨在通过使用基于大型语言模型 &#xff08;LLM&#xff09; 的管道编排来简化非结构化数据的处理。它具有独特的优势&#xff0c;可以从各种非结构化数据类型&#xff08;包括冗长的文本、图像…

浅谈进程与线程

文章目录 一. 进程&#x1f34e;什么是程序&#xff1f;什么是进程&#xff1f;&#x1f34b;程序的并发性和并行性&#x1f349;进程诞生的原因&#x1f351;PCB 二. 线程&#x1f365;什么是线程&#xff1f;&#x1f366;为什么引入线程&#xff1f; 三. 进程与线程的区别与…

HarmonyOS 设备管理开发:USB 服务开发指导

基本概念 USB 服务是应用访问底层的一种设备抽象概念。开发者根据提供的 USB API&#xff0c;可以获取设备列表、控制设备访问权限、以及与连接的设备进行数据传输、控制命令传输等。 运作机制 USB 服务系统包含 USB API、USB Service、USB HAL。 图 1 USB 服务运作机制 ●…

【SpringBoot3+Vue3】五【完】【实战篇】-前端(配合后端)

目录 一、环境准备 1、创建Vue工程 2、安装依赖 2.1 安装项目所需要的vue依赖 2.2 安装element-plus依赖 2.2.1 安装 2.2.2 项目导入element-plus 2.3 安装axios依赖 2.4 安装sass依赖 3、目录调整 3.1 删除部分默认目录下文件 3.1.1 src/components下自动生成的…

JeecgBoot3.5漏洞升级—快速文档

近几年来&#xff0c;黑客攻击行为呈现出日益复杂和隐蔽的趋势&#xff0c;对个人和组织的安全造成了严重威胁。黑客们不断寻找新的漏洞和安全漏洞&#xff0c;利用各种手段进行网络攻击&#xff0c;包括恶意软件、网络钓鱼、勒索软件等。因此&#xff0c;我们每个人都需要关注…

Windows系统下载并安装 Windows PowerShell

PowerShell下载地址 一 windows7 版本 **若要确定您正在使用的 Microsoft PowerShelll 版本,请在 Windows 7 或 Windows Server 2008R2 或 Windows Server 2012 计算机上执行以下操作: 单击“开始”,单击“所有程序”,单击“附件”,单击“Windows PowerShell”,然后单击…

渲染农场渲染一分钟动画需要多少钱?需要渲染多少时间?

现在很公司都开始使用渲染农场渲染动画&#xff0c;但是还是有很多人不知道渲染农场渲染动画需要多少钱&#xff0c;需要渲染多少时间。在这篇文章中我们将为你一一解答&#xff0c;为你提供一个清晰的参考。 渲染农场的收费通常是按照渲染的使用时间收费&#xff0c;渲染十分…

华大基因助力乌兹别克斯坦精准医学发展,共筑健康丝绸之路

今年上半年&#xff0c;中国与中亚五国元首齐聚陕西西安&#xff0c;举办中国&#xff0d;中亚峰会。过去的20年里&#xff0c;中国已经成为中亚国家的主要投资来源国&#xff0c;总投资额接近400亿美元。乌兹别克斯坦是中国&#xff0d;中亚合作机制的重要参与者&#xff0c;乌…

elasticsearch命令大全

1、查询全部索引 GET /_cat/indices?v2、要按文档数对所有索引进行降序排序 GET /_cat/indices?v&hindex,docs.count&sdocs.count:descv&#xff1a;参数用于显示列标题 h&#xff1a;参数用于指定要显示的列 s&#xff1a;参数用于指定按哪一列进行排序 desc&…

CAD随机多面体_圆柱试件3D插件

插件介绍 CAD随机多面体_圆柱试件3D插件可用于在AutoCAD软件内生成随机三维多面体及外侧圆柱体试件。插件可确保多面体之间不发生干涉&#xff0c;且多面体与外侧圆柱体试件之间保持适配关系&#xff0c;确保生成的模型导入有限元软件后几何合理有效。本插件主要可应用于三维混…

讲概念谈愿景AI Agent名不副实?看实在智能RPA Agent智能体如何落地!

OpenAI在首届开发者大会上推出了GPTs和Assitant API&#xff0c;不仅改写了AI Agent的构建范式&#xff0c;也把AI智能体的应用推向一个新高潮。GPTs和GPT商店&#xff0c;使得用户无需编码通过自然语言就能创建并拥有多个专属私人助理&#xff0c;且可以如在苹果应用商店一样在…

开发教育APP的意义

开发教育APP的意义有以下几点&#xff1a; 促进教育资源发挥效果&#xff1a;通过教育APP软件开发&#xff0c;可以让现代教育资源有效合理的进行利用&#xff0c;并且能够更进一步的提升发挥功能&#xff0c;促进教育资源全面发挥其具体作用和效果&#xff0c;从而提升教育行…

3.3.1详解linux内核链表list_head及其接口应用

文章目录 1 list定义2 list接口2.1 list初始化方法1:定义并初始化链表方法2:先定义再初始化链表2.2 list_add2.3 list_del2.4 list_replace2.5 list_move2.6 list_splice3 list遍历3.1 list_entry3.2 list_first_entry3.3 list_last_entry3.4 list_first_entry_or_null3.5 li…

Y-MODEM协议定制上位机

最近在使用N32G031和STM32F10X系列单片机进行IAP&#xff0c;使用的是Ymodem协议。单片机上的软件已经完成了&#xff0c;一般是使用secureCRT这样的工具作为上位机来进行测试&#xff0c;后来想做一个定制化的简单的上位机。在网上找了下资料&#xff0c;以下这篇文章写的使用…