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

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 plugin
  id '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 plugin
  id 'com.google.gms.google-services'

  ...
}

dependencies {
  // Import the Firebase BoM
  implementation 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 dependencies
  implementation 'com.google.firebase:firebase-analytics'


  // Add the dependencies for any other desired Firebase products
  // https://firebase.google.com/docs/android/setup#available-libraries

  implementation '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 中(点击通知栏后)。
     */
    @Override
    public void onMessageReceived(@NonNull RemoteMessage message) {

    }

    /**
     * 当有新的Firebase token 时的回调
     * 第一次安装app 获取到的 pushtoken
     */
    @Override
    public void onNewToken(@NonNull String token) {
        //token 传递给后端
        //在Firebase控制台测试push的时候,需要将token配置进去
        Logger.i(TAG, "onNewToken =" + token);
    }

}
<service
            android: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

阿里云​​​​​​​


http://www.kler.cn/a/401883.html

相关文章:

  • C++AVL平衡树
  • 5.4.2-1 编写Java程序在HDFS上创建文件
  • mysql 的乐观锁和 mvcc 是一回事吗
  • 基于 MONAI 的 3D 图像分割任务2(Brain Tumour 和 SwinUNETR 训练)
  • 递归(3)----力扣40组合数2,力扣473火柴拼正方形
  • OceanBase 分区表详解
  • 9.《滑动窗口篇》---①长度最小的子数组(中等)
  • Elasticsearch 查看磁盘占用 查看指定索引磁盘占用
  • SpringBoot 2.2.10 无法执行Test单元测试
  • Excel数据动态获取与映射
  • MySQL SELECT 语句执行链路解析
  • C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
  • 24.UE5枚举,怪物分类,龙卷风技能
  • LLaMA与ChatGLM选用比较
  • 无插件H5播放器EasyPlayer.js RTSP播放器chrome/edge等浏览器如何使用独立显卡
  • 构建安全护盾:HarmonyOS 应用的数据安全审计与日志管理实战
  • 自动驾驶系列—告别眩光烦恼:智能大灯如何守护夜间行车安全
  • Linux(命令行扩展+命令行历史 大白话+图片)
  • 查询我正在学习的课程
  • C++:指针和引用
  • 速盾:cdn影响获取ip吗?
  • 21-JavaScript 解构赋值简介
  • Android:任意层级树形控件(有效果图和Demo示例)
  • 项目-摄像
  • python学习笔记1
  • 基于深度学习的文本信息提取方法研究(pytorch python textcnn框架)