gpg::GameServices

#include <game_services.h>

与 Google Play 游戏交互的起点。

摘要

游戏服务生命周期

通过 GameServices::Builder 创建 GameServices 类的实例。创建时,实例最初未登录游戏服务(即,IsAuthorized() 将返回 false)。后台会启动静默登录尝试,如果用户在上一个会话结束时已登录,则可能会成功。在此静默登录尝试完成之前,应禁用或隐藏任何用户身份验证 UI(例如,登录和/或注销按钮)。

此静默登录尝试完成后,将通知 GameServices 实例的 OnAuthActionFinished 回调(使用 GameServices::Builder::SetOnAuthActionFinished 注册)。如果回调参数反映了成功的登录尝试,则可以假设实例已连接到游戏服务(即,IsAuthorized() 将返回 true),并且应启用注销 UI。如果回调参数反映了登录尝试失败,则应启用登录 UI。

仅应在用户请求时调用通过 SignOut() 方法进行的显式注销。这请求转换到已注销状态。OnAuthActionFinished 回调的调用指示此转换的完成。在此回调被调用之前,不应调用其他 GameServices API(包括 StartAuthorizationUI())。

GameServices 实例被销毁时,它将阻塞,直到没有挂起的操作以避免数据丢失。如果不需要这种销毁时阻塞行为,则应发出 Flush(),并且应使 GameServices 实例保持活动状态,直到 Flush() 完成。

为了使 GameServices 在低于 4.0 的 Android 版本上正常运行,拥有 Activity 必须调用生命周期回调。请参阅 AndroidSupport

构造函数和析构函数

GameServices()
~GameServices()

公共类型

FlushCallback typedef
std::function< void(FlushStatus)>
定义一个回调类型,该类型接收 Flush 操作的结果(状态)。

公共函数

成就()
提供对 AchievementManager 对象的引用,该对象用于访问和操作成就。
Achievements() const
提供对 AchievementManager 对象的常量引用,该对象用于访问和操作成就。
事件()
提供对 EventManager 对象的引用,该对象用于访问和操作事件。
Events() const
const EventManager &
提供对 EventManager 对象的常量引用,该对象用于访问和操作事件。
Flush(FlushCallback callback)
void
异步刷新主调度队列,并将刷新的状态返回给提供的 FlushCallback。
FlushBlocking()
同步刷新并获取刷新的结果(状态)。
FlushBlocking(Timeout timeout)
同步刷新并获取刷新的结果(状态)。
IsAuthorized()
bool
允许您显式检查当前授权状态。
排行榜()
提供对 LeaderboardManager 对象的引用,该对象用于访问和操作成就。
Leaderboards() const
提供对 LeaderboardManager 对象的常量引用,该对象用于访问和操作成就。
玩家()
提供对 PlayerManager 对象的引用,该对象允许访问有关玩家的信息。
Players() const
const PlayerManager &
提供对 PlayerManager 对象的常量引用,该对象允许访问有关玩家的信息。
实时多人游戏()
提供对 RealTimeMultiplayerManager 对象的引用,该对象允许访问与 RTMP 相关的 方法。
RealTimeMultiplayer() const
提供对 RealTimeMultiplayerManager 对象的常量引用,该对象允许访问与 RTMP 相关的 方法。
SignOut()
void
开始异步注销过程。
快照()
提供对 SnapshotManager 对象的引用,该对象用于访问和操作快照。
Snapshots() const
const SnapshotManager &
提供对 SnapshotManager 对象的常量引用,该对象用于访问和操作快照。
StartAuthorizationUI()
void
显示特定于平台的用户授权流程。
统计信息()
提供对 StatsManager 对象的引用,该对象用于访问游戏和玩家统计信息。
Stats() const
const StatsManager &
提供对 StatsManager 对象的常量引用,该对象用于访问游戏和玩家统计信息。
回合制多人游戏()
提供对 TurnBasedMultiplayerManager 对象的引用,该对象允许访问与 TBMP 相关的 方法。
TurnBasedMultiplayer() const
提供对 TurnBasedMultiplayerManager 对象的常量引用,该对象允许访问与 TBMP 相关的 方法。
视频()
提供对 VideoManager 对象的引用,该对象允许访问与视频相关的 方法。
Video() const
const VideoManager &
提供对 VideoManager 对象的常量引用,该对象允许访问与视频相关的 方法。

gpg::GameServices::Builder

用于创建和配置 GameServices 类的实例。

公共类型

FlushCallback

std::function< void(FlushStatus)> FlushCallback

定义一个回调类型,该类型接收 Flush 操作的结果(状态)。

用于 Flush()

公共函数

成就

AchievementManager & Achievements()

提供对 AchievementManager 对象的引用,该对象用于访问和操作成就。

成就

const AchievementManager & Achievements() const 

提供对 AchievementManager 对象的常量引用,该对象用于访问和操作成就。

事件

EventManager & Events()

提供对 EventManager 对象的引用,该对象用于访问和操作事件。

事件

const EventManager & Events() const 

提供对 EventManager 对象的常量引用,该对象用于访问和操作事件。

Flush

void Flush(
  FlushCallback callback
)

异步刷新主调度队列,并将刷新的状态返回给提供的 FlushCallback。

可能的状态为:FLUSHED、ERROR_INTERNAL 和 ERROR_VERSION_UPDATE_REQUIRED。

FlushBlocking

FlushStatus FlushBlocking()

同步刷新并获取刷新的结果(状态)。

可能的状态为:FLUSHED、ERROR_INTERNAL、ERROR_NOT_AUTHORIZED、ERROR_VERSION_UPDATE_REQUIRED 和 ERROR_TIMEOUT。不指定此超时时间使此函数调用等效于调用 FlushStatus FlushBlocking(Timeout),其中 Timeout 指定为 10 年。

FlushBlocking

FlushStatus FlushBlocking(
  Timeout timeout
)

同步刷新并获取刷新的结果(状态)。

可能的状态为:FLUSHED、ERROR_INTERNAL、ERROR_NOT_AUTHORIZED、ERROR_VERSION_UPDATE_REQUIRED 和 ERROR_TIMEOUT。将超时时间指定为任意毫秒数。

GameServices

 GameServices()=delete

IsAuthorized

bool IsAuthorized()

允许您显式检查当前授权状态。

建议 SDK 使用者注册 AUTH_ACTION_* 回调以处理授权状态更改,而不是轮询。

排行榜

LeaderboardManager & Leaderboards()

提供对 LeaderboardManager 对象的引用,该对象用于访问和操作成就。

排行榜

const LeaderboardManager & Leaderboards() const 

提供对 LeaderboardManager 对象的常量引用,该对象用于访问和操作成就。

玩家

PlayerManager & Players()

提供对 PlayerManager 对象的引用,该对象允许访问有关玩家的信息。

玩家

const PlayerManager & Players() const 

提供对 PlayerManager 对象的常量引用,该对象允许访问有关玩家的信息。

实时多人游戏

RealTimeMultiplayerManager & RealTimeMultiplayer()

提供对 RealTimeMultiplayerManager 对象的引用,该对象允许访问与 RTMP 相关的 方法。

实时多人游戏

const RealTimeMultiplayerManager & RealTimeMultiplayer() const 

提供对 RealTimeMultiplayerManager 对象的常量引用,该对象允许访问与 RTMP 相关的 方法。

SignOut

void SignOut()

开始异步注销过程。

调用 SignOut 后,在收到指示成功注销的 OnAuthActionFinishedCallback 之前,不应在 GameServices 上调用任何操作。

快照

SnapshotManager & Snapshots()

提供对 SnapshotManager 对象的引用,该对象用于访问和操作快照。

快照

const SnapshotManager & Snapshots() const 

提供对 SnapshotManager 对象的常量引用,该对象用于访问和操作快照。

StartAuthorizationUI

void StartAuthorizationUI()

显示特定于平台的用户授权流程。

统计信息

StatsManager & Stats()

提供对 StatsManager 对象的引用,该对象用于访问游戏和玩家统计信息。

统计信息

const StatsManager & Stats() const 

提供对 StatsManager 对象的常量引用,该对象用于访问游戏和玩家统计信息。

回合制多人游戏

TurnBasedMultiplayerManager & TurnBasedMultiplayer()

提供对 TurnBasedMultiplayerManager 对象的引用,该对象允许访问与 TBMP 相关的 方法。

回合制多人游戏

const TurnBasedMultiplayerManager & TurnBasedMultiplayer() const 

提供对 TurnBasedMultiplayerManager 对象的常量引用,该对象允许访问与 TBMP 相关的 方法。

视频

VideoManager & Video()

提供对 VideoManager 对象的引用,该对象允许访问与视频相关的 方法。

视频

const VideoManager & Video() const 

提供对 VideoManager 对象的常量引用,该对象允许访问与视频相关的 方法。

~GameServices

 ~GameServices()