概述
本教程旨在帮助你快速上手集成了推送通知的 Android PlayFab 集成。 推送通知需要在多个系统中进行配置。在开始之前,我们先来了解一下基础结构的工作方式。此过程涉及 4 个实体:- Google Play 服务
- Firebase Cloud Messaging 服务(FCM,构建于旧版 Google Cloud Messaging 之上。)
- PlayFab 服务
- 客户端应用程序
1. Google Play 服务
Google Play 服务使用包名称来识别你在 Play 商店中的页面。 例如:com.bob.games.matchthree。 在 Google Play 中注册后,包名称将成为唯一的应用程序 ID,并有多种用途,从通过 Play 商店安装到防止仿冒。2. Firebase Cloud Messaging (FCM)
Firebase Cloud Messaging 服务为你提供基于云的系统,用于发送、定向和传递推送通知。 它还允许其他服务(例如 PlayFab)使用 FCM 服务器密钥代表你发送推送通知。3. PlayFab 服务
PlayFab 服务随后使用 FCM 服务器密钥向你的客户端发送推送通知。4. 客户端服务
最后,你的客户端应用程序可以接收通知并根据需要进行处理。四部分划分
因此,我们需要设置 4 个不同的系统。为此,本教程分为 4 章,分别介绍每个部分的配置。配置这些系统的顺序非常重要。
先决条件
- 你必须拥有 Google 帐户。
- 你必须拥有 PlayFab 帐户。
- 使用 Android Asset Studio 通知图标生成器生成的通知图标。
方案
在本教程的这一部分中,我们将构建一个名为 Foo PlayFab App 的应用程序。这是一个具有以下功能的 Android 应用:- 使用 Android 设备 ID 登录 PlayFab。
- 接收来自 PlayFab 的推送通知。
按照本教程操作时,请务必使用你自己的包名称和游戏名称。
第 1 章:配置 Firebase
首先使用 Firebase 的官方控制台页面开始配置 Firebase。你将看到一个可以添加新项目的页面。- 为此,请选择添加项目区域,如下图所示。

- 系统将要求你提供项目名称(在本教程中,我们使用 Foo PlayFab App,但按照本教程操作时,请务必想出你自己的名称)。
- 选择创建项目按钮以进入下一步。

- 通过选择下图所示的区域,向项目中添加新的 Android 应用程序。

- 首先,你必须提供 Android 包名称。我们使用的是 com.foo.playfab.app,但按照本教程操作时,请务必想出你自己的包名称。
- 选择注册应用按钮以进入下一步。

- 下载后,选择继续按钮以进入下一步。

- 最后一步提供了有关如何设置生成过程以连接 Firebase 和 Google Play SDK 的信息。
你可以忽略此信息,因为我们将使用 Android Studio 中内置的自动化工具来自动执行此设置。
- 选择完成按钮以继续。

- 添加应用程序后,它将显示在仪表板上。
- 此时,配置已完成,我们需要提取 FCM 服务器密钥(我们将使用它来连接 PlayFab 推送通知)。
- 转到项目设置,如下图所示。

- 在项目设置中,导航到 Cloud Messaging 选项卡。
- 找到服务器密钥区域(下图中的红色区域)。
- 复制此密钥并将其存储在安全且易于访问的位置。

第 2 章:配置 Google Play 管理中心
当你的应用准备就绪时,你很可能会创建一个 Google 管理中心项目来维护产品的 Play 商店页面。下面我们来完成创建 Google Play 项目并将其链接到 Firebase 项目的过程。 首先访问 Google Play 管理中心页面,然后创建一个新项目,如下图所示。
- 指定标题。
在此示例中,我们使用 Foo PlayFab App。按照本教程操作时,请务必想出你自己的游戏名称和包名称。
- 选择创建按钮以继续。

- 将打开 Google Play 管理中心项目页面。
- 在侧边菜单中选择服务和 API。

- 将打开服务配置页面。
- 找到 Firebase Cloud Messaging 面板。
- 选择链接发送者 ID 按钮,如下图所示。

- 使用你在上一章中使用 Firebase 控制台时获得(并保存)的 FCM 服务器密钥。
- 完成后,选择链接按钮,如我们的示例所示。

- 花点时间验证 Google Play 管理中心中显示的发送者 ID 是否与 Firebase 控制台中的发送者 ID 匹配,如下例所示。

第 3 章:配置 PlayFab 游戏
本章的目的是向你展示如何配置 PlayFab 服务,以便其能够代表你向玩家发送推送通知。- 首先,你必须转到游戏“设置”菜单中的游戏设置。
- 选择推送通知选项卡。
- 对于 Android 选项,选择设置图标。

- 系统将要求你提供 Google 服务器 API 密钥。
- 复制你通过 Firebase 控制台获得的密钥,如下面提供的示例所示。

- 如果一切正确,你将看到一个页面,显示推送通知为活动状态。

第 4 章:配置 Android Studio 项目
要使用 PlayFab JavaSDK,你需要 PlayFab Client JavaSDK 及其依赖项 Google GSON。- 在此处下载 PlayFab 客户端 JavaSDK JAR 库。
-
查找
client-sdk-*.jar,如果需要,还可以查找相应的 Java 文档。 - 下载最新的 Google GSON。
-
查找
gson-*.jar。 - 将前面提到的 .jar 文件放在手边。
- 验证包名称是否与你在本教程中(例如在 Firebase 中)使用的包名称匹配。
在本示例中,我们使用的是 com.foo.playfab.app,但按照本教程操作时,请记得想出你自己的包名称和游戏名称。

- 根据你的选择选择最低 SDK。
- 然后选择下一步按钮。

- 选择要使用的模板。
- 然后选择下一步按钮。

- 根据需要配置模板。
- 选择完成按钮。

- 切换到 Project 选项卡 (1)。
在上一章中,你从 Firebase 控制台下载了
google-services.json 配置文件。在下一步中使用此文件。- 验证此文件是否位于 App 文件夹下 (2)。
- 然后,导航到 Tools (3)。
- 选择 Firebase (4),如下面提供的示例所示。

- 找到 Cloud Messaging 文件夹,然后选择 Set up Firebase Cloud Messaging,如下所示。

- 在 Firebase Notifications Assistant 中,选择 Add FCM to your app (1) 按钮,如下图所示。
- 将打开一个对话框,指示将通过 Gradle 添加新的依赖项。
- 选择 Accept Changes (2) 以批准更改。
遗憾的是,Gradle 同步过程 (3) 自动添加的依赖项不正确,并会报告失败!
-
要正确设置依赖项,请将自动添加的语句替换为以下内容:
implementation 'com.google.firebase:firebase-core:16.0.3
implementation 'com.google.firebase:firebase-messaging:17.0.0

- 验证 Firebase Notifications Assistant 是否指示依赖项现已正确设置 (1)。
在本章开头,我们获取了必要的 JAR 文件。通常,生成文件会自动获取这些文件。
- 要确保这些 JAR 文件列在 app/libs 文件夹下 (2),请选择所有文件并右键单击它们。
- 然后选择 Add as library… (3),如下面提供的示例所示。

- 使用 Android Asset Studio 通知图标生成器准备图标,并将其放在 app/src/main/res 中。
- 在下面所示的示例中,图标名为 ic_stat_blur_on。

- 最后,选择 Rebuild Project。

- app/src/main/AndroidManifest.xml
- app/src/main/java/..packagePath../MainActivity.java
- app/src/main/java/..packagePath../FooAppFirebaseInstanceIdService.java
- app/src/main/java/..packagePath../FooAppFirebaseMessagingService.java
当前实现被设计得尽可能简短,只是为了快速测试通知。有关高质量的最佳做法和更复杂的实现示例,请参阅 FCM 指南。
AndroidManifest.xml
在以下代码中,将所有MY_PACKAGE_IDENTIFIER 占位符替换为你自己的包标识符。
MainActivity.java
应根据你的方案替换代码中的以下占位符。-
PLAYFAB_TITLE_ID- 使用你在 PlayFab Game Manager 中获得的游戏 ID。
-
PACKAGE_IDENTIFIER- 使用与你的设置匹配的 Java 包标识符。
FooAppFirebaseInstanceIdService.java
应根据你的方案替换下面所示代码中的占位符。PACKAGE_IDENTIFIER- 与你的设置匹配的 Java 包标识符。
FooAppFirebaseMessagingService.java
应根据你的方案替换下面所示代码中的占位符。PACKAGE_IDENTIFIER- 与你的设置匹配的 Java 包标识符。
测试
此时,你应该能够将应用程序部署到设备。- 启动应用程序后,它将自动登录并注册推送通知。
- 选择设备上的主页按钮以最小化应用程序。这一点很重要,因为这样我们才能测试到达系统托盘的通知。
- 接下来,转到 PlayFab 游戏的 Game Manager 页面,并使用仪表板找到最新的推送注册。
- 选择玩家 ID (1)。

- 选择发送推送通知按钮 (1)。
- 输入标题 (2)。
- 输入消息正文 (3)。
- 通过选择发送推送通知按钮 (4) 提交更改。

- 验证消息是否到达你的设备。

