• Android使用google Firebase Cloud Messaging的云推送发送通知


    Android使用google Firebase Cloud Messaging的云推送发送通知

    关于

      首先是Firebase的官网地址,然后我们使用google账号登陆并开始使用:
    在这里插入图片描述
      新建一个项目,这里我用我之前的测试的项目了,然后在项目里面点击添加应用,并选择对应平台-Android进入如下页面:
    在这里插入图片描述
      然后输入Android项目的包名,其余别名和sha证书选填,然后点击注册应用,点击下一步,然后我们会下载一个叫google-services.json文件,将它下载后放到moudle的根目录里,我们可以点开这个json文件查看里面clientid是不是我们moudle的applicationid:

    在这里插入图片描述
      然后我们下一步里面会有提示添加依赖的api,这里我们在工程的build里面添加如下:

    dependencies {
            classpath 'com.google.gms:google-services:4.3.13'
            }
    
    • 1
    • 2
    • 3

      然后修改对应的模块的build引用:

    plugins {
        id 'com.google.gms.google-services'
    }
    
    implementation 'com.google.firebase:firebase-messaging:23.0.6'
    implementation platform('com.google.firebase:firebase-bom:30.3.1')   
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

      接下来我们可以通过Android studio的firebase连接网页控制台看下配置是否成功,单击 Tools > Firebase. (这会将项目添加到 Firebase),单击 Set up Firebase Cloud Messaging,这里选择第一个即可,选择kotlin版的就是messaging的引用和一些类用法不一样,最终结果一致的:
    在这里插入图片描述
      单击 Connect to Firebase,会跳出弹框提示我们已经连接到了某个项目,就说明已经配置成功了:
    在这里插入图片描述
      接下来我们想收到云消息推送,还需要编写一个类继承FirebaseMessagingService

    class MyFirebaseInstanceIDService : FirebaseMessagingService() {
    
        override fun onNewToken(token: String) {
            super.onNewToken(token)
            "token内容$token".printLog() //这个刷新token会在第一次以及一些重置刷新的时候重新返回一个token
        }
    
        override fun onMessageReceived(message: RemoteMessage) {
            super.onMessageReceived(message)
            "当前接收到的数据${message.data}".printLog()
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

      平时的token获取可以调用:

    FirebaseMessaging.getInstance().token.addOnCompleteListener { 
                
            }
    
    • 1
    • 2
    • 3

      然后我们还需要在androidmanifest.xml里面把service声明一下:

    <service
                android:name=".MyFirebaseInstanceIDService"
                android:exported="false">
                <intent-filter>
                    <action android:name="com.google.firebase.MESSAGING_EVENT" />
                intent-filter>
            service>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

      好了,现在android接收这一块已经简单配置好了,我们运行一下app(最好是卸载重新安装一下),然后可以在控制台看到token的打印(第一次运行firebase会上传我们的设备信息,这个可以在logcat里面通过regex firebase查看到):
    在这里插入图片描述
      然后我们打开Firebase的网页控制台,在项目左侧找到cloud messaging,然后点击制作,在弹出框中选择制作通知消息:
    在这里插入图片描述
      然后我们首先需要输入通知栏标题和内容等,这和一些极光推送等一样用法:
    在这里插入图片描述
      点击下一步,需要我们定位要发送的app,通过选择对应application id的特定设备:
    在这里插入图片描述
      然后选择发送的时间,一般都是立即发送。下一步转化事件我们不管,继续下一步,android8.0的通知需要有渠道,我们输入一些测试数据,用于返回观察:
    在这里插入图片描述  最后点击审核发布,然后我们可以在网页上看到发布状态:
    在这里插入图片描述
      我们在Android studio的logcat里面可以看到收到的通知消息数据:
    在这里插入图片描述
      注意,这个推送消息有时候会有一定时间的延迟。到此,本篇就结束了,有问题欢迎留言

  • 相关阅读:
    GHOST工具访问数据库
    服务器数据恢复—RAID5阵列重建重建导致数据丢失的数据恢复案例
    金蝶与电商集成如何调用奇门接口
    pycharm使用
    Service Mesh基础概念
    SQL查询语句中DISTINCT去重的方法,DISTINCT必须放在第一位
    shiro注解和过滤器
    【Flutter】包管理(4)Flutter 数据存储 shared_preferences 详解
    初识设计模式 - 装饰器模式
    浅谈链游的未来:可定制性、身份和社交层
  • 原文地址:https://blog.csdn.net/Tobey_r1/article/details/126165616