当前位置: 首页 > news >正文

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添加进去

问题

如果杀进程后接收不到FCM消息,
方法1:进入系统设置-找到自己的应用-找到电池-点进去-将受限制改成不受限制或者优化
方法2:进入系统设置-电池-后台使用限制-自定运行应用程序-找到自己的应用选上

设置后,进程被杀进后会被系统拉起

方法1设置完后,去设置查看方法2也被设置上了;反之亦然

问题相关文档​​​​​​​

stackoverflow

阿里云​​​​​​​

相关文章:

Android集成FCM(Firebace Cloud Messaging )

集成FCM官方文档 Firebace主页面 将 Firebase 添加到您的 Android 应用 1、进入Firebace页面&#xff0c;创建自己的项目 2、点击自己创建好的项目&#xff0c;在右侧选择Cloud Messaging 3、点击Android去创建 google-services.json 4、将下载的 google-services.json 文件…...

基于 RBF 神经网络辨识的单神经元 PID 模型参考自适应控制

这是一个基于 RBF 神经网络辨识 和 单神经元 PID 模型参考自适应控制 的系统框图&#xff0c;包含以下主要部分&#xff1a; RBF 神经网络模块&#xff1a;用于对系统进行辨识&#xff0c;输入误差 e(t)e(t)e(t) 和误差变化量 Δe(t)\Delta e(t)Δe(t)&#xff0c;输出与系统特…...

2024年 Web3开发学习路线全指南

Web3是一个包含了很多领域的概念&#xff0c;不讨论币圈和链圈的划分&#xff0c;Web3包括有Defi、NFT、Game等基于区块链的Dapp应用的开发&#xff1b;也有VR、AR等追求视觉沉浸感的XR相关领域的开发&#xff1b;还有基于区块链底层架构或者协议的开发。 这篇文章给出的学习路…...

Ubuntu22.04LTS 部署前后端分离项目

一、安装mysql8.0 1. 安装mysql8.0 # 更新安装包管理工具 sudo apt-get update # 安装 mysql数据库&#xff0c;过程中的选项选择 y sudo apt-get install mysql-server # 启动mysql命令如下 &#xff08;停止mysql的命令为&#xff1a;sudo service mysql stop&#xff0…...

「Mac玩转仓颉内测版23」基础篇3 - 深入理解整数类型

本篇将详细讲解Cangjie中的整数类型&#xff0c;探讨整数的定义、操作、表示范围、进制表示、类型转换及应用场景&#xff0c;帮助开发者在Cangjie中灵活运用整数类型构建程序逻辑。 关键词 有符号整数与无符号整数表示范围与溢出进制表示类型转换字面量与操作 一、整数类型概…...

渗透测试导学

渗透测试导学 渗透测试概念 渗透测试是干什么&#xff1f; 渗透测试的定义和目的&#xff1a;渗透测试是一种通过模拟恶意黑客的攻击方法&#xff0c;来评估计算机网络系统安全性能的评估方法。它的目的是通过识别安全问题&#xff0c;帮助了解当前的安全状况&#xff0c;从而…...

Django实现智能问答助手-基础配置

设置 Django 项目、创建应用、定义模型和视图、实现问答逻辑&#xff0c;并设计用户界面。下面是一步一步的简要说明&#xff1a; 目录&#xff1a; QnAAssistant/ # 项目目录 │ ├── QnAAssistant/ # 项目文件夹 │ ├── init.py # 空文件 │ ├── settings.py # 项目配…...

亚马逊商品详情API接口解析,Json数据示例返回

亚马逊的商品详情API接口&#xff08;如Amazon Product Advertising API&#xff09;允许开发者获取商品的详细信息&#xff0c;包括价格、描述、图片URL等。以下是一个示例的JSON数据返回结构&#xff0c;以及相应的解析说明。请注意&#xff0c;实际返回的数据结构可能会根据…...

git根据远程分支创建本地新分支

比如我当前本地仓库有4个 remote 仓库&#xff0c;我希望根据其中的一个 <remote>/<branch> 创建本地分支&#xff1a; 先使用 github fetch <remote> 拉取 <remote> 的分支信息&#xff0c;然后在 git checkout -b 创建新分支时使用 -t <remote>…...

Android U 多任务启动分屏——SystemUI流程(更新中)

前文 Android U 多任务启动分屏——Launcher流程&#xff08;下分屏&#xff09; 前文说到通过ISplitScreen接口跨进程调用到了SystemUI进程&#xff0c;我们继续分析分屏在systemui中的实现。 wmshell实现分屏 实现ISplitScreen接口 代码路径&#xff1a;frameworks/base/…...

使用SaaS化的Aurora应用快速搭建私人ChatGPT助手

使用SaaS化的Aurora应用快速搭建私人ChatGPT助手 简介&#xff1a; Aurora是一个带UI且免费的GPT私人聊天助手&#xff0c;可切换GPT-3.5&#xff0c;4&#xff0c;4o等常用版本。用户可通过部署Aurora&#xff0c;快速打造自己专属的AI助手。阿里云计算巢已将Aurora打包为SaaS…...

.NET 9与C# 13革新:新数据类型与语法糖深度解析

记录&#xff08;Record&#xff09;类型 使用方式&#xff1a; public record Person(string FirstName, string LastName); 适用场景&#xff1a;当需要创建不可变的数据结构&#xff0c;且希望自动生成 GetHashCode 和 Equals 方法时。不适用场景&#xff1a;当数据结构需…...

2.fs文件系统模块

文章目录 [TOC](文章目录)2.5.练习-成绩管理2.5.1在files文件夹下新建成绩.txt文件2.5.2.新建对应的js文件 2.6.fs模块-路径动态拼接的问题 3.path路径模块3.1什么是path路径模块3.2.路径拼接3.3.获取路径中的文件名3.4.获取路径中的文件扩展名3.5.案例3.5.1.步骤13.5.2.调用fs…...

Ubuntu24.04LTS设置root用户可远程登录

Ubuntu24.04LTS设置root用户可远程登录 文章目录 Ubuntu24.04LTS设置root用户可远程登录1. 设置root密码2. 设置root用户可远程登录1. 查看ssh服务是否安装2. 安装ssh服务3. 再次查看ssh服务是否安装4. 配置ssh文件5. 重启ssh服务6. root远程登录 1. 设置root密码 Ubuntu安装后…...

ROS2指令总结(跟随古月居教程学习)

​ 博主跟随古月居博客进行ROS2学习&#xff0c;对ROS2相关指令进行了总结&#xff0c;方便学习和回顾。 古月居ROS2博文链接&#xff1a;https://book.guyuehome.com/ 本文会持续进行更新&#xff0c;觉得有帮助的朋友可以点赞收藏。 1. ROS2安装命令 $ sudo apt update &am…...

IPTV智慧云桌面,后台服务器搭建笔记

环境CentOs7.9 &#xff0c;安装宝塔yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 访问宝塔&#xff0c;修改服务器端口安全组端口 26029 注意&#xff01;&#xff01;&#xff01;&#xff01…...

徒手从零搭建一套ELK日志平台

徒手从零搭建一套ELK日志平台 日志分析的概述日志分析的作用主要收集工具集中式日志系统主要特点采集日志分类ELK概述初级版ELK终极版ELK高级版ELKELK收集日志的两种形式 搭建ELK平台Logstash工作原理Logstash核心概念环境准备安装部署docker添加镜像加速器安装部署Elasticsear…...

udp_socket

文章目录 UDP服务器封装系统调用socketbind系统调用bzero结构体清0sin_family端口号ip地址inet_addrrecvfromsendto 新指令 netstat -naup (-nlup)包装器 的两种类型重命名方式包装器使用统一可调用类型 关键字 typedef 类型重命名系统调用popen UDP服务器封装 系统调用socket …...

肝了半年,我整理出了这篇云计算学习路线(新手必备,从入门到精通)

大家好&#xff01;我是凯哥&#xff0c;今天给大家分享一下云计算学习路线图。这是我按照自己最开始学习云计算的时候的学习路线&#xff0c;并且结合自己从业多年所涉及的知识精心总结的云计算的思维导图。这是凯哥精心总结的&#xff0c;花费了不少精力哦&#xff0c;希望对…...

【Golang】手搓DES加密

代码非常长 有六百多行 参考一位博主的理论实现 通俗易懂&#xff0c;十分钟读懂DES 还有很多不足的地方 感觉只是个思路 S盒&#xff08;理论既定&#xff09; package src// 定义S - 盒的置换表 var SBoxes [8][4][16]int{{{14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, …...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

《Offer来了:Java面试核心知识点精讲》大纲

文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示&#xff1a;在用tensordoard的时候一定一定要用绝对位置&#xff0c;例如&#xff1a;tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾&#xff1a; tensorboard的发展历史和原理tens…...

表单设计器拖拽对象时添加属性

背景&#xff1a;因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...