gpg::GameServices

#include <game_services.h>

与 Google Play 游戏互动的起点。

摘要

游戏服务生命周期

通过 GameServices::Builder 创建 GameServices 类的实例。创建后,该实例最初不会登录游戏服务(即 IsAuthorized() 将返回 false)。静默登录尝试会在后台启动,如果用户在前一个会话结束时登录,登录尝试可能会成功。在静默登录尝试完成之前,应停用或隐藏所有用户身份验证界面(例如登录和/或退出按钮)。

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

只有在用户请求时才应调用通过 SignOut() 方法明确退出账号。这会请求转换为已退出状态。系统会调用 OnAuthActionFinished 回调来表明此转换是否已完成。在调用此回调之前,不得调用其他 GameServices API(包括 StartAuthorizationUI())。

GameServices 实例被销毁时,它将阻塞,直到没有待处理的操作为止,以免数据丢失。如果不希望出现这种阻塞行为,则应发出 Flush()GameServices 实例保持活跃状态,直到 Flush() 完成为止。

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

构造函数和析构函数

GameServices()
~GameServices()

公共类型

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

公共函数

Achievements()
提供对用于访问和处理成就的 AchievementManager 对象的引用。
Achievements() const
提供对用于访问和处理成就的 AchievementManager 对象的常量引用。
Events()
提供对用于访问和处理事件的 EventManager 对象的引用。
Events() const
const EventManager &
提供对用于访问和处理事件的 EventManager 对象的常量引用。
Flush(FlushCallback callback)
void
异步刷新主调度队列,并将刷新状态返回给提供的 FlushCallback。
FlushBlocking()
同步刷新并获取清空的结果(状态)。
FlushBlocking(Timeout timeout)
同步刷新并获取清空的结果(状态)。
IsAuthorized()
bool
允许您明确检查当前授权状态。
Leaderboards()
提供对用于访问和处理成就的 LeaderboardManager 对象的引用。
Leaderboards() const
提供对用于访问和处理成就的 LeaderboardManager 对象的常量引用。
Players()
提供对 PlayerManager 对象的引用,该对象允许访问有关玩家的信息。
Players() const
const PlayerManager &
提供对 PlayerManager 对象的常量引用,以允许访问有关玩家的信息。
RealTimeMultiplayer()
提供对 RealTimeMultiplayerManager 对象的引用,该对象可用来访问 RTMP 相关的方法。
RealTimeMultiplayer() const
提供对 RealTimeMultiplayerManager 对象的常量引用,从而允许访问与 RTMP 相关的方法。
SignOut()
void
开始异步退出流程。
Snapshots()
提供对用于访问和处理快照的 SnapshotManager 对象的引用。
Snapshots() const
const SnapshotManager &
提供对用于访问和处理快照的 SnapshotManager 对象的常量引用。
StartAuthorizationUI()
void
调出平台专用的用户授权流程。
Stats()
提供对用于访问游戏和玩家统计信息的 StatsManager 对象的引用。
Stats() const
const StatsManager &
提供对 StatsManager 对象的常量引用,该对象用于访问游戏和玩家统计信息。
TurnBasedMultiplayer()
提供对 TurnBasedMultiplayerManager 对象的引用,从而允许访问与 TBMP 相关的方法。
TurnBasedMultiplayer() const
提供对 TurnBasedMultiplayerManager 对象的常量引用,从而允许访问与 TBMP 相关的方法。
Video()
提供对 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 对象的常量引用。

清空

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),并将超时指定为 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 对象的常量引用,以允许访问有关玩家的信息。

RealTimeMultiplayer

RealTimeMultiplayerManager & RealTimeMultiplayer()

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

RealTimeMultiplayer

const RealTimeMultiplayerManager & RealTimeMultiplayer() const 

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

SignOut

void SignOut()

开始异步退出流程。

调用 SignOut 后,您不应对 GameServices 调用任何操作,直至收到表示成功退出登录的 OnAuthActionFinishedCallback。

快照

SnapshotManager & Snapshots()

提供对用于访问和处理快照的 SnapshotManager 对象的引用。

快照

const SnapshotManager & Snapshots() const 

提供对用于访问和处理快照的 SnapshotManager 对象的常量引用。

StartAuthorizationUI

void StartAuthorizationUI()

调出平台专用的用户授权流程。

统计信息

StatsManager & Stats()

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

统计信息

const StatsManager & Stats() const 

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

TurnBasedMultiplayer

TurnBasedMultiplayerManager & TurnBasedMultiplayer()

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

TurnBasedMultiplayer

const TurnBasedMultiplayerManager & TurnBasedMultiplayer() const 

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

视频

VideoManager & Video()

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

视频

const VideoManager & Video() const 

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

~GameServices

 ~GameServices()