gpg::GameServices

#include <game_services.h>

与 Google Play 游戏互动的起点。

摘要

Game Services 生命周期

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

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

只有在用户请求时,才应通过 SignOut() 方法调用显式退出登录。这会请求转换为已退出账号状态。调用 OnAuthActionFinished 回调即表示此转换已完成。在调用此回调之前,不应调用其他 GameServices API(包括 StartAuthorizationUI())。

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

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

构造函数和析构函数

GameServices()
~GameServices()

公共类型

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

公共函数

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() 中使用。

公共函数

成就

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),其中 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 相关的方法。

退出

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()