gpg::GameServices

#include <game_services.h>

与 Google Play 游戏互动的起点。

摘要

游戏服务生命周期

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

静默登录尝试完成后,系统会通知 GameServices 实例(通过 GameServices::Builder::SetOnAuthActionFinished 注册)的 OnAuthActionFinished 回调。如果回调参数反映的是成功的登录尝试,则可以假定该实例已连接到游戏服务(即 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()