📅  最后修改于: 2023-12-03 15:08:24.901000             🧑  作者: Mango
Firebase Cloud Messaging(FCM)是谷歌提供的一种推送通知服务,可以帮助 Android 开发者更方便地实现消息推送功能。本文将介绍如何在 Android 应用中使用 FCM 推送通知,方便开发者快速实现一些基本的推送功能,以下是详细步骤:
如果你还没有创建 Firebase 项目,那就先去 Firebase 控制台 创建一个吧,创建过程中需要提供一些基本配置,按照提示操作即可。
在 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)。
让设备能够接收到 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
方法获取到了设备的注册令牌。
现在已经集成了 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 推送了通知,这样就能够轻松地将消息通知推送给应用程序的用户了。当然,这只是个开端,还有很多高级功能可以使用,希望能对你有所帮助。