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
|
typedefstd::function< void(FlushStatus)>
定义用于接收刷新操作结果(状态)的回调类型。 |
公共函数 |
|
---|---|
Achievements()
|
提供对用于访问和操作成就的 AchievementManager 对象的引用。
|
Achievements() const
|
const AchievementManager &
提供对用于访问和操作成就的 AchievementManager 对象的常量引用。
|
Events()
|
提供对用于访问和操控事件的 EventManager 对象的引用。
|
Events() const
|
const EventManager &
提供对用于访问和操控事件的 EventManager 对象的常量引用。
|
Flush(FlushCallback callback)
|
void
异步刷新主调度队列,并将刷新的状态返回给提供的 FlushCallback。
|
FlushBlocking()
|
同步刷新并获取刷新的结果(状态)。
|
FlushBlocking(Timeout timeout)
|
同步刷新并获取刷新的结果(状态)。
|
IsAuthorized()
|
bool
允许您明确检查当前授权状态。
|
Leaderboards()
|
提供对用于访问和操控成就的 LeaderboardManager 对象的引用。
|
Leaderboards() const
|
const LeaderboardManager &
提供对用于访问和操作成就的 LeaderboardManager 对象的常量引用。
|
Players()
|
提供对 PlayerManager 对象的引用,以便访问玩家的相关信息。
|
Players() const
|
const PlayerManager &
提供对 PlayerManager 对象的常量引用,以便访问玩家的相关信息。
|
RealTimeMultiplayer()
|
提供对 RealTimeMultiplayerManager 对象的引用,以便访问与 RTMP 相关的方法。
|
RealTimeMultiplayer() const
|
const RealTimeMultiplayerManager &
提供对 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
|
const TurnBasedMultiplayerManager &
提供对 TurnBasedMultiplayerManager 对象的常量引用,以便访问与 TBMP 相关的方法。
|
Video()
|
提供对 VideoManager 对象的引用,以便访问与视频相关的方法。
|
Video() const
|
const VideoManager &
提供对 VideoManager 对象的常量引用,以便访问与视频相关的方法。
|
类 |
|
---|---|
gpg:: |
用于创建和配置 GameServices 类的实例。 |
公共类型
公共函数
清空
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_* 回调来处理授权状态变更,而不是轮询。
RealTimeMultiplayer
RealTimeMultiplayerManager & RealTimeMultiplayer()
提供对 RealTimeMultiplayerManager 对象的引用,以便访问与 RTMP 相关的方法。
RealTimeMultiplayer
const RealTimeMultiplayerManager & RealTimeMultiplayer() const
提供对 RealTimeMultiplayerManager 对象的常量引用,以便访问与 RTMP 相关的方法。
退出
void SignOut()
开始异步退出流程。
调用 SignOut 后,您不应对 GameServices 调用任何操作,直到您收到指示成功退出账号的 OnAuthActionFinishedCallback 为止。
StartAuthorizationUI
void StartAuthorizationUI()
调出平台专用用户授权流程。
TurnBasedMultiplayer
TurnBasedMultiplayerManager & TurnBasedMultiplayer()
提供对 TurnBasedMultiplayerManager 对象的引用,以便访问与 TBMP 相关的方法。
TurnBasedMultiplayer
const TurnBasedMultiplayerManager & TurnBasedMultiplayer() const
提供对 TurnBasedMultiplayerManager 对象的常量引用,以便访问与 TBMP 相关的方法。
~GameServices
~GameServices()