在 Android 上设置 Firebase Cloud Messaging 客户端应用

要编写您的 Firebase Cloud Messaging Android 客户端应用,请使用 FirebaseMessaging API 和 Android Studio 1.4 或更高版本及 Gradle。本页面中的说明假设您已完成将 Firebase 添加到您的 Android 项目的步骤。

FCM客户端需要运行 Android 2.3 或更高版本的设备,且这些设备安装了 Google Play 商店应用,或者需要运行 Android 2.3 及 Google API 的模拟器。请注意,您并非只能通过 Google Play 商店部署您的 Android 应用。

设置 Firebase 和FCM SDK

  1. 如果尚未添加,请将 Firebase 添加至您的 Android 项目

  2. 在 Android Studio 中,将 FCM 依赖项添加至您的应用级 build.gradle 文件:

    dependencies {
         compile 'com.google.firebase:firebase-messaging:9.6.1'
    }

编辑您的应用清单

将以下内容添加至您应用的清单中:

  • 一项可以扩展 FirebaseMessagingService 的服务。如果您希望在后台进行接收应用通知之外的任何消息处理,则必须添加此服务。要在前台应用中接收通知、接收数据负载以及发送上游消息等,您必须扩展此服务。
  • 一项可以扩展 FirebaseInstanceIdService 的服务,用于处理注册令牌的创建、轮转和更新。如果要发送至特定设备或者创建设备群组,则必须添加此服务。
  • 如果FCM对于 Android 应用的功能至关重要,应确保在清单中设置 android:minSdkVersion="8" 或更高版本。这可确保 Android 应用无法安装在其不能正常运行的环境中。

例如:

检查 Google Play 服务 APK

依靠 Play 服务 SDK 运行的应用在访问 Google Play 服务功能之前,应始终检查设备是否拥有兼容的 Google Play 服务 APK。建议在以下两个地方进行检查:在主 Activity 的 onCreate() 方法中,以及在其 onResume() 方法中。在 onCreate() 中检查可确保该应用在检查未成功之前无法使用。在 onResume() 中检查可确保如果用户通过某些其他方式返回正在运行的应用(比如通过返回按钮),检查仍将继续进行。如果设备没有兼容的 Google Play 服务 APK,您的应用可以调用 GooglePlayServicesUtil.getErrorDialog() 以允许用户从 Google Play 商店下载此 APK,或在设备的系统设置中启用它。有关代码示例,请参阅设置 Google Play 服务

获取设备注册令牌

初次启动您的应用时,FCM SDK 会为客户端应用实例生成注册令牌。如果您希望针对单一设备,或者创建设备群组,您将需要获取此令牌。

您可以通过扩展 FirebaseInstanceIdService 来获取令牌的值。确保已将服务添加至您的清单中,然后在 onTokenRefresh 上下文中调用 getToken,并记录下面显示的值:

每次生成新的令牌时,onTokenRefresh 回调都会触发,因此,在上下文中调用 getToken 可以确保您访问当前可用的注册令牌。如果尚未生成令牌,FirebaseInstanceID.getToken() 将返回 null。

获取令牌后,您可以将其发送至您的应用服务器。有关 API 的完整详情,请参阅 Instance ID API 参考

后续步骤

设置客户端应用后,即可开始使用 Firebase 控制台发送下游消息使用 Firebase 控制台发送主题消息快速入门示例演示了此功能,您可以下载、运行和查看快速入门示例。

要向您的应用添加其他更高级的行为,您可以声明 Intent 过滤器和实现 Activity 来响应传入消息。如需了解详情,请参阅从应用服务器发送消息的指南:

请记住,您需要一个服务器实现才能充分利用这些功能。

发送以下问题的反馈:

此网页