📜  如何使用Firebase Cloud Messaging在Android中推送通知?(1)

📅  最后修改于: 2023-12-03 15:08:24.901000             🧑  作者: Mango

如何使用Firebase Cloud Messaging在Android中推送通知?

Firebase Cloud Messaging(FCM)是谷歌提供的一种推送通知服务,可以帮助 Android 开发者更方便地实现消息推送功能。本文将介绍如何在 Android 应用中使用 FCM 推送通知,方便开发者快速实现一些基本的推送功能,以下是详细步骤:

步骤 1:创建 Firebase 项目

如果你还没有创建 Firebase 项目,那就先去 Firebase 控制台 创建一个吧,创建过程中需要提供一些基本配置,按照提示操作即可。

步骤 2:集成 Firebase SDK

在 Firebase 控制台创建了 Firebase 项目之后,需要集成 Firebase SDK ,这样才能在代码中使用 FCM 功能。打开项目 “Project settings” 页面,在 “General” 标签下找到 “Your apps” 部分,点击 “Add app” 按钮,选择 Android 应用,输入应用相关信息并下载 google-services.json 文件。

然后将下载的 google-services.json 文件移动到你的项目根目录中的 app/ 目录下。在你的应用的 build.gradle 文件中添加以下代码:

// ...
dependencies {
    // ...
    implementation 'com.google.firebase:firebase-messaging:20.2.4'
}
apply plugin: 'com.google.gms.google-services'
// ...

这里指定了 Firebase Messaging SDK 的版本(目前是 20.2.4)。

步骤 3:注册设备

让设备能够接收到 FCM 推送的通知,需要在应用程序中注册设备。可以在应用程序的 Launcher Activity 中注册设备。在 onCreate() 方法中添加以下代码:

FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w(TAG, "getInstanceId failed", task.exception)
        return@addOnCompleteListener
    }
    // Get new Instance ID token
    val token = task.result
    Log.d(TAG, "Device token: $token")
}

这里 FirebaseMessaging.getInstance().token 方法获取到了设备的注册令牌。

步骤 4:发送推送通知

现在已经集成了 Firebase SDK 并注册了设备,接下来就可以发送推送通知了,要发送推送通知,需要有一个后台服务,用于向 Firebase 发送推送通知请求。这个后台服务可以使用 Firebase 控制台提供的云函数,也可以使用第三方的后台服务,比如自己的服务器。

代码示例:

val message = RemoteMessage.Builder("DEVICE_TOKEN@gcm.googleapis.com")
        .setMessageId(java.util.UUID.randomUUID().toString())
        .setData(mapOf("title" to "Hello", "body" to "World"))
        .build()
FirebaseMessaging.getInstance().send(message)

这里的 DEVICE_TOKEN 是前面注册设备时获取到的设备令牌。

结语

至此,你已经成功地在 Android 应用中使用 Firebase Cloud Messaging 推送了通知,这样就能够轻松地将消息通知推送给应用程序的用户了。当然,这只是个开端,还有很多高级功能可以使用,希望能对你有所帮助。