gpg::GameServices

#include <game_services.h>

与 Google Play Games 交互的起点。

摘要

Game Services 生命周期

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

此静默登录尝试完成后,将通知 GameServices 实例的 OnAuthActionFinished 回调(通过 GameServices::Builder::SetOnAuthActionFinished 注册)。如果回调参数反映登录尝试成功,则可以假定实例已连接到 Game Services(即 IsAuthorized() 将返回 true),并应启用退出 UI。如果回调参数反映登录尝试失败,则应启用登录 UI。

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

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

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

构造函数和析构函数

GameServices()
~GameServices()

公共类型

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

公共函数

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

gpg::GameServices::Builder

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

公共类型

FlushCallback

std::function< void(FlushStatus)> FlushCallback

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

Flush() 中使用。

公共函数

成就

AchievementManager & Achievements()

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

成就

const AchievementManager & Achievements() const 

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

事件

EventManager & Events()

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

事件

const EventManager & Events() const 

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

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 对象的 const 引用。

玩家

PlayerManager & Players()

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

玩家

const PlayerManager & Players() const 

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

实时多人游戏

RealTimeMultiplayerManager & RealTimeMultiplayer()

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

实时多人游戏

const RealTimeMultiplayerManager & RealTimeMultiplayer() const 

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

SignOut

void SignOut()

开始异步退出登录过程。

调用 SignOut 后,在收到表示成功退出登录的 OnAuthActionFinishedCallback 之前,不应调用 GameServices 上的任何操作。

快照

SnapshotManager & Snapshots()

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

快照

const SnapshotManager & Snapshots() const 

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

StartAuthorizationUI

void StartAuthorizationUI()

启动平台特定的用户授权流程。

统计信息

StatsManager & Stats()

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

统计信息

const StatsManager & Stats() const 

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

回合制多人游戏

TurnBasedMultiplayerManager & TurnBasedMultiplayer()

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

回合制多人游戏

const TurnBasedMultiplayerManager & TurnBasedMultiplayer() const 

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

视频

VideoManager & Video()

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

视频

const VideoManager & Video() const 

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

~GameServices

 ~GameServices()