gpg::GameServices

#include <game_services.h>

與 Google Play 遊戲互動的起點。

摘要

遊戲服務生命週期

GameServices 類別的例項是透過 GameServices::Builder 建立。執行個體建立時,一開始未登入 Game Services (也就是說,IsAuthorized() 會傳回 false)。系統會在背景啟動無訊息登入嘗試,如果使用者是在前一個工作階段結束時登入,就可能成功。在這類無訊息登入嘗試完成前,應停用或隱藏任何使用者驗證使用者介面,例如登入和/或登出按鈕。

這個無訊息登入嘗試完成後,GameServices 例項 (透過 GameServices::Builder::SetOnAuthActionFinished 註冊) 的 OnAuthActionFinished 回呼會收到通知。如果回呼引數反映成功登入,系統會假設執行個體已連線至遊戲服務 (也就是 IsAuthorized() 傳回 true),並且應啟用登出 UI。如果回呼引數反映登入失敗,應啟用登入 UI。

透過 SignOut() 方法明確登出時,只能在使用者要求時叫用。這會要求轉換至登出狀態。叫用 OnAuthActionFinished 回呼時,就能看到轉換完成。在叫用此回呼的這段時間前,不應呼叫其他 GameServices API (包括 StartAuthorizationUI())。

GameServices 執行個體刪除後會遭到封鎖,直到沒有待處理的作業,以免資料遺失。如果不想發生這種阻斷行為,系統應發出 Flush(),並將 GameServices 執行個體保持上線,直到 Flush() 完成為止。

為了讓 GameServices 在 Android 4.0 以下版本中正常運作,擁有的活動必須呼叫生命週期回呼。請參閱 AndroidSupport

建構函式和解構函式

GameServices()
~GameServices()

公開類型

FlushCallback typedef
std::function< void(FlushStatus)>
定義接收 Flush 作業結果 (狀態) 的回呼類型。

公開函式

Achievements()
提供用於存取及操作成就的 AchievementManager 物件參照。
Achievements() const
提供 const 參照,用來存取及操作成就的 AchievementManager 物件。
Events()
提供用於存取及操控事件的 EventManager 物件參照。
Events() const
const EventManager &
針對用於存取及操控事件的 EventManager 物件提供 const 參照。
Flush(FlushCallback callback)
void
以非同步方式清除主要分派佇列,並將清除狀態傳回提供的 FlushCallback。
FlushBlocking()
同步清除並取得清除結果 (狀態)。
FlushBlocking(Timeout timeout)
同步清除並取得清除結果 (狀態)。
IsAuthorized()
bool
可讓您明確檢查目前的授權狀態。
Leaderboards()
提供用於存取及操作成就的 LeaderboardManager 物件參照。
Leaderboards() const
針對用於存取及操作成就的 LeaderboardManager 物件提供常數參照。
Players()
提供 PlayerManager 物件的參照,允許存取玩家的相關資訊。
Players() const
const PlayerManager &
提供 PlayerManager 物件的 const 參照,允許存取玩家相關資訊。
RealTimeMultiplayer()
提供 RealTimeMultiplayerManager 物件的參照,允許存取 RTMP 相關方法。
RealTimeMultiplayer() const
提供 RealTimeMultiplayerManager 物件的 const 參照,允許存取 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 物件的 const 參照,允許存取 TBMP 相關方法。
Video()
提供 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 

提供 const 參照,用來存取及操作成就的 AchievementManager 物件。

活動

EventManager & Events()

提供用於存取及操控事件的 EventManager 物件參照。

活動

const EventManager & Events() const 

針對用於存取及操控事件的 EventManager 物件提供 const 參照。

清除

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 物件的 const 參照,允許存取玩家相關資訊。

RealTimeMultiplayer

RealTimeMultiplayerManager & RealTimeMultiplayer()

提供 RealTimeMultiplayerManager 物件的參照,允許存取 RTMP 相關方法。

RealTimeMultiplayer

const RealTimeMultiplayerManager & RealTimeMultiplayer() const 

提供 RealTimeMultiplayerManager 物件的 const 參照,允許存取 RTMP 相關方法。

SignOut

void SignOut()

開始非同步登出程序。

呼叫 SignOut 後,在收到「OnAuthActionFinishedCallback」指出成功登出之前,您不應在 GameServices 中呼叫任何作業。

快照

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 物件的 const 參照,允許存取 TBMP 相關方法。

影片

VideoManager & Video()

提供 VideoManager 物件的參照,允許存取影片相關方法。

影片

const VideoManager & Video() const 

提供 VideoManager 物件的 const 參照,該物件可讓您存取影片相關方法。

~GameServices

 ~GameServices()