Android集成FCM(Firebace Cloud Messaging )

集成FCM官方文档

Firebace主页面

将 Firebase 添加到您的 Android 应用

1、进入Firebace页面,创建自己的项目

2、点击自己创建好的项目,在右侧选择Cloud Messaging

3、点击Android去创建 google-services.json

 

4、将下载的 google-services.json 文件移到您的模块(应用级)根目录中

 

5、添加相关SDK(根据自己AGP版本去添加对应的SDK版本,否则可能会编译失败) 

将该插件作为依赖项添加到您的项目级 build.gradle 文件中:

根级(项目级)Gradle 文件 (<project>/build.gradle):

plugins {// ...// Add the dependency for the Google services Gradle pluginid 'com.google.gms.google-services' version '4.4.2' apply false}

然后,在模块(应用级) build.gradle 文件中,同时添加要在您的应用中使用的 google-services 插件和任何 Firebase SDK:

模块(应用级)Gradle 文件 (<project>/<app-module>/build.gradle):

plugins {id 'com.android.application'// Add the Google services Gradle pluginid 'com.google.gms.google-services'...
}dependencies {// Import the Firebase BoMimplementation platform('com.google.firebase:firebase-bom:33.6.0')// TODO: Add the dependencies for Firebase products you want to use// When using the BoM, don't specify versions in Firebase dependenciesimplementation 'com.google.firebase:firebase-analytics'// Add the dependencies for any other desired Firebase products// https://firebase.google.com/docs/android/setup#available-librariesimplementation 'com.google.firebase:firebase-messaging:24.0.3'
}

重写FirebaseMessagingService 

public class MyFirebaseMessagingService extends FirebaseMessagingService {private static final String TAG = MyFirebaseMessagingService.class.getSimpleName();/*** 监听推送的消息* 三种情况:* 1,通知时:* 当应用处于前台的时候,推送的消息会走onMessageReceived方法,处于后台时走系统托盘。* 2,数据时:* 当应用处于前、后台的时候,会走onMessageReceived方法。* 3,通知且携带数据:* 当应用处于前台的时候,推送的消息会走onMessageReceived方法,处于后台时,通知走系统托盘,数据走Intent 的 extra 中(点击通知栏后)。*/@Overridepublic void onMessageReceived(@NonNull RemoteMessage message) {}/*** 当有新的Firebase token 时的回调* 第一次安装app 获取到的 pushtoken*/@Overridepublic void onNewToken(@NonNull String token) {//token 传递给后端//在Firebase控制台测试push的时候,需要将token配置进去Logger.i(TAG, "onNewToken =" + token);}}
<serviceandroid:name="com.xx.xx.push.fcm.MyFirebaseMessagingService"android:exported="false"><intent-filter><action android:name="com.google.firebase.MESSAGING_EVENT" /></intent-filter></service>

完成以上工作就可以正常接收到消息了

注意:系统设置中需要开启通知权限

控制台调试

进入Firebase Messaging页面,点击制作首个宣传活动

 

 

将设备上生成的token添加进去

 

问题

1、接收FCM消息需要进程存活,否则收不到 

2、可以开启自启动权限,进程不在的时候收的FCM可以将进程拉起来

3、自测接受FCM消息的时候手机不需要翻墙

4、无法生成token的话,检查是不是没有安装Google play services服务

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

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

相关文章

D2076——一款双通道音频功率放大器【青牛科技】

概述&#xff1a; D2076是一款双通道音频功率放大器&#xff0c;最低工作电压可到1.0V。适用于 便携式小型收音机或立体声耳机作双通道或BTL应用。 主要特点&#xff1a; BTL工作&#xff0c;Po90mW&#xff08;典型值&#xff09; 外接元器件少 通过外接PNP三极管作为…

智慧社区平台系统提升物业管理效率与居民生活质量

内容概要 智慧社区平台系统是为应对现代城市管理挑战而诞生的重要工具。随着城市化进程的加快&#xff0c;传统的物业管理方式已经难以满足日益增长的居民需求和管理复杂性。因此&#xff0c;引入智能化管理手段显得尤为重要。这个系统不仅仅是一个简单的软件&#xff0c;它是…

【langchain4j】AIservices能够实现更加灵活的chain

文章目录 AI service介绍如何工作的AiServices提供的能力支持的返回形式 简单的例子&#xff1a;接收用户消息&#xff0c;并按规定返回接收单个变量接收更多动态变量 advanced RAGChaining multiple AI Services&#xff1a;多个AiSerives合并到一起相关教程&#xff1a;[Lang…

JavaScript 中字符串和数组的概念解析与多角度对比区分

文章目录 &#x1f4af;前言&#x1f4af;字符串&#xff08;String&#xff09;&#x1f4af;数组&#xff08;Array&#xff09;&#x1f4af;字符串与数组的相同点与不同点&#x1f4af;字符串和数组的实际应用场景&#x1f4af;字符串与数组的互转&#x1f4af;字符串和数组…

4K双模MiniLED显示器哪个好

4K双模MiniLED显示器哪个好&#xff1f;现在市面上的4K双模MiniLED显示器太多了&#xff0c;琳琅满目&#xff0c;今天就给大家列举一下7款当下火热到爆炸的品牌&#xff0c;看看4K双模MiniLED显示器哪个好。 4K双模MiniLED显示器哪个好 - HKC G27M7PRO HKC G27M7Pro 是一款性…

每天五分钟深度学习pytorch:批归一化全连接网络完成手写字体识别

本文重点 前面我们学习了普通的全连接神经网络,后面我们学习了带有激活层的全连接神经网络,本文我们继续进一步升级,我们学习带有批归一化的全连接神经网络,批归一化可以加快神经网络的训练速度,减少过拟合,具体它的原理,大家可以看我们的《每天五分钟深度学习》专栏,…

excel打开csv文件乱码的问题

如图所示&#xff0c;在保存csv文件时已指定编码为utf-8&#xff0c;用excel打开后仍然乱码 解决方法&#xff1a; 在保存csv文件时指定编码为utf-8-sig 该编码方式会在文件开头加入一个 BOM&#xff08;Byte Order Mark&#xff09;&#xff0c;有助于 Excel 正确识别 UTF-8…

QQ音乐 11.3.4 | 魅族定制版,极致简洁,无广告,不限机型

QQ音乐魅族定制版&#xff0c;界面设计极致简洁&#xff0c;没有任何广告干扰&#xff0c;支持听限免歌曲&#xff0c;不限机型使用。用户可以通过微信和QQ直接登录&#xff0c;享受纯净的音乐体验。 大小&#xff1a;94.6M 下载地址&#xff1a; 百度网盘&#xff1a;https:…

使用TensorFlow实现简化版 GoogLeNet 模型进行 MNIST 图像分类

在本文中&#xff0c;我们将使用 TensorFlow 和 Keras 实现一个简化版的 GoogLeNet 模型来进行 MNIST 数据集的手写数字分类任务。GoogLeNet 采用了 Inception 模块&#xff0c;这使得它在处理图像数据时能更高效地提取特征。本教程将详细介绍如何在 MNIST 数据集上训练和测试这…

TON商城与Telegram App:生态融合与去中心化未来的精彩碰撞

随着区块链技术的快速发展&#xff0c;去中心化应用&#xff08;DApp&#xff09;逐渐成为了数字生态的重要组成部分。而Telegram作为全球领先的即时通讯应用&#xff0c;不仅仅满足于传统的社交功能&#xff0c;更在区块链领域大胆探索&#xff0c;推出了基于其去中心化网络的…

vulhub之log4j

Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645) 漏洞简介 Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码。 Apache Log4j 在应用程序中添加日志记录最…

web服务nginx实验4:访问控制

4-1&#xff1a;基于不同用户的访问控制&#xff1a; 安装软件&#xff1a; 创建HTTP基本认证用户密码文件&#xff0c;tom&#xff0c;密码&#xff1a;1&#xff0c;lisa&#xff0c;密码&#xff1a;1&#xff1a; -c&#xff1a;表示创建一个新的密码文件。如果该文件已经…

基于FastAPI实现本地大模型API封装调用

关于FastAPI FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Python Web 框架&#xff0c;用于构建基于标准 Python 类型提示的 API。它以简洁、直观和高效的方式提供工具&#xff0c;特别适合开发现代 web 服务和后端应用程序。 问题&#xff1a;_pad() got an un…

数字化点亮库布其沙漠的绿色梦想

Bentley 应用程序助力提升设计和施工效率&#xff0c;提前六周交付设计成果 清洁能源为沙漠带来新活力 库布其光伏治沙项目&#xff08;以下简称“该项目”&#xff09;位于内蒙古鄂尔多斯市库布其沙漠&#xff0c;占地约 10 万亩&#xff0c;是中国单体规模最大的光伏治沙项目…

基于单片机的风能太阳能供电的路灯智能控制系统设计(论文+源码)

1系统总体设计 本课题为风能太阳能供电的路灯智能控制系统设计&#xff0c;系统的主要功能设计如下&#xff1a; &#xff08;1&#xff09; 供电模块&#xff1a;采用太阳能板以及风机模拟风扇充电&#xff0c;经过充电电路给锂电池进行充电。再由锂电池给照明模块以及整个项…

Linux Centos7 Rocky网卡配置

目录 1.Vmare 虚拟机配置 &#xff08;1&#xff09;打开虚拟机输入ip a&#xff0c;查看ip网段&#xff0c;若为192.168.81.135 &#xff08;2&#xff09;在Vmare上的虚拟网络配置器配置 &#xff08;3&#xff09;确保电脑有VMnet1 VMnet8 2.Linux虚拟机Centos配置 &#…

MySQL索引原理之查询优化

MySQL索引原理之查询优化 1、慢查询定位 开启慢查询日志 查看 MySQL 数据库是否开启了慢查询日志和慢查询日志文件的存储位置的命令如下&#xff1a; SHOW VARIABLES LIKE %slow_query_log%通过如下命令开启慢查询日志&#xff1a; SET global slow_query_log 1; SET global …

ArchGuard 架构分析器发布:多语言、跨项目架构数据生成,助力 AI 时代知识挖掘...

TL;DR&#xff1a;https://github.com/archguard/archguard 过去的几个月里&#xff0c;我们一直在探索用 AI 辅助跨项目、跨大量微服务的系统的开发。其中一个重要的话题就是&#xff0c;从现有的软件架构去生成知识&#xff0c;文档是落后、多版本的&#xff0c; 只有代码才保…

NLP论文速读(多伦多大学)|利用人类偏好校准来调整机器翻译的元指标

论文速读|MetaMetrics-MT: Tuning Meta-Metrics for Machine Translation via Human Preference Calibration 论文信息&#xff1a; 简介&#xff1a; 本文的背景是机器翻译&#xff08;MT&#xff09;任务的评估。在机器翻译领域&#xff0c;由于不同场景和语言对的需求差异&a…

工程车识别算法平台LiteAIServer算法定制工程车类型检测算法:建筑工地安全管理的得力助手

随着科技的飞速发展&#xff0c;智能化技术正在逐步改变我们的生活方式&#xff0c;特别是在交通管理和安全管理领域。其中&#xff0c;算法定制LiteAIServer工程车类型检测算法以其高效、准确和实时的特性&#xff0c;成为了建筑工地管理、矿山开采以及物流运输等多个领域的重…