Skip to main content

快速入门:Android

开始使用适用于 Android 的 PlayFab Services SDK。按以下步骤将库包含到你的项目中,并试用基本 PlayFab 功能的示例代码。 本快速入门帮助你使用 Android SDK 进行第一次 PlayFab API 调用。在继续之前,请确保已完成 快速入门:Game Manager 中的步骤,以确保你拥有 PlayFab 账户并熟悉 PlayFab Game Manager。

要求

项目设置

PlayFab SDK 发布页面 将 PlayFab Android SDK 下载到你的项目中。

将 PlayFab C SDK 集成到你自己的项目中

以下步骤假定你已使用 Android Studio 创建了一个新项目。

将二进制文件添加到你的游戏

有两部分二进制文件需要集成到你的项目中:共享对象文件(.so)和 Android 归档文件(.aar)。你可以自己构建这些二进制文件,或从发布页面下载。

添加 .so 文件

这些文件通过 CMake 集成到你的项目中。
  1. 解压 PlayFab SDK for Android 发布包并将其内容放到你想要的目录。
  2. 使用 target_include_directories 或其他等效函数,添加 PlayFab SDK 发布包中 “Include” 下的头文件:
  1. 使用 target_link_libraries 或其他等效函数,将 .so 文件的位置链接到你的项目。 例如:

添加 .aar 文件

这些文件通过 Gradle 集成到你的项目中。
  1. 在 app 级别的 Android 项目目录中创建一个 libs 文件夹。以下是项目目录现在应有的示例:
  1. 将 .aar 文件复制到 libs 文件夹中。
  2. 在与 libs 文件夹相同目录下的 app 级别 build.gradle 文件中,将以下几行添加到 dependencies 部分。第二行是 libHttpClient 所需的依赖项。

初始化和登录

现在你的项目已完全设置为使用 PlayFab Services SDK for Android,按照下面的步骤让一些示例调用运行起来。

初始设置

首先你需要设置应用程序使其拥有一个 Android activity 的实例。你还需要设置一个小型的 C/C++ 应用程序以使用 NDK 与 JNI(Java Native Interface)。以下是一个小示例可供参考:https://github.com/android/ndk-samples/tree/android-mk/hello-jni。 该示例包含一个返回 jstring 的原生方法:
原生方法可用于获取 Java VM 和应用程序上下文,这是初始化 PFServices 所需的两样东西。你可以为初始化目的创建一个类似的方法:
然后可以使用 JNIEnv 变量检索 Java VM。
接下来,可通过 jobject 参数获得应用程序上下文。
现在你已存储这两个变量,我们可以开始进行调用。

头文件

包含 PFServices.h 以访问所有内置的 PlayFab 功能:

初始化

PlayFab 初始化需要两个函数调用:PFServicesInitializePFServiceConfigCreateHandle。此初始化的结果是一个 PFServiceConfigHandle。你将此句柄提供给后续的登录调用,将调用指向 PlayFab 后端中正确的 title。

登录

一旦你有了 PFServiceConfigHandle,就可以用它进行玩家登录调用。在 SDK 中,使用 PFAuthenticationLoginWith*Async 方法,例如 PFAuthenticationLoginWithCustomIDAsync。此函数允许你使用自定义 ID 将玩家登录到 PlayFab。 进行登录调用后,可以使用 XAsyncGetStatus 检查调用状态。状态开始为 E_PENDING,调用成功完成后变为 S_OK。如果调用因某种原因失败,状态会反映该失败。所有 PlayFab Services 调用的错误处理方式都是这样。 S_OK 结果一起,你会得到一个 PFEntityHandle。你使用此句柄以登录玩家的身份进行后续 PlayFab 调用。它包含以该玩家身份对 PlayFab 服务进行身份验证所需的任何材料。

服务调用

玩家登录后,你现在可以对 PlayFab 后端进行调用。以下是一个获取存储在 PlayFab 中当前玩家文件的调用示例。

获取 EntityKey

对于某些 PlayFab 调用来说,知道玩家的 PFEntityKey 会很有用。一旦你有了 PFEntityToken,就可以使用 PFEntityGetEntityKey 检索 PFEntityKey

调用 GetFiles

所有 PlayFab 调用都遵循类似的模式:准备请求对象、进行调用(使用登录得到的 PFEntityHandle)、创建接收响应的对象,然后调用 GetResult 函数以填充新创建的容器。

清理

当你的游戏准备关闭或你出于其他原因需要清理 PlayFab 时,请确保关闭所有已打开的句柄并调用 PFServicesUninitializeAsync

异步 API 模式

PlayFab Services SDK 遵循 GDK 中实现的异步编程模型。此编程模型涉及使用由 XAsync 库提供的任务和任务队列。此模型与其他 GDK 函数和扩展(如 XBOX Services API)保持一致。虽然它引入了一些复杂性,但也带来了对异步操作的高度控制。 以下示例展示了如何对 PFDataGetFilesAsync 进行异步调用。

错误处理

已完成的 XAsync 操作返回 HTTP 状态代码。错误状态代码在调用 XAsyncGetStatus() 或某个 PF*Get() API 时表现为失败的 HRESULT,例如 HTTP_E_STATUS_NOT_FOUND 要查看服务返回的详细错误消息,请参阅下一节关于调试的内容。这些详细的错误消息在开发期间可用于更好地理解 PlayFab 服务对客户端请求的反应。

调试

查看结果并调试 PlayFab Services SDK 中任何调用的最简单方法是启用 调试跟踪。启用调试跟踪后,你既可以在调试器输出窗口中看到结果,也可以将结果挂接到自己游戏的日志中。

参考

API 参考文档
最后修改于 2026年9月1日