gpg::GameServices

#include <game_services.h>

與 Google Play 遊戲互動的起點。

摘要

遊戲服務生命週期

GameServices 類別的例項是透過 GameServices::Builder 建立。執行個體建立完成後,一開始不會登入遊戲服務 (也就是說,IsAuthorized() 會傳回 false)。系統在背景中啟動了無訊息的登入嘗試;如果使用者在上一個工作階段結束時登入,可能會成功。在此之前,所有的使用者驗證使用者介面 (例如登入和/或登出按鈕) 均應停用或隱藏。

在這次無訊息登入嘗試完成時,系統會通知 GameServices 執行個體的 OnAuthActionFinished 回呼 (透過 GameServices::Builder::SetOnAuthActionFinished) 通知。如果回呼引數反映成功登入,系統會假設執行個體是連線至遊戲服務 (也就是說,IsAuthorized() 會傳回 true),並應啟用登出 UI。如果回呼引數反映登入失敗,則應啟用登入使用者介面。

透過 SignOut() 方法明確登出,只有在使用者要求時才能叫用。這項要求會要求轉換為登出狀態。轉換完成可透過叫用 OnAuthActionFinished 回呼來表示。在叫用此回呼前,不應呼叫其他 GameServices API (包括 StartAuthorizationUI())。

刪除 GameServices 執行個體時,該執行個體會遭到封鎖,直到沒有任何待處理的作業為止,以免資料遺失。如果不希望出現此區塊後刪除的行為,系統應發出 Flush(),且 GameServices 執行個體應保持運作,直到 Flush() 完成為止。

為了讓 GameServices 在 Android 4.0 以下版本中正常運作,所屬 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 後,在您收到表示成功登出的 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 物件的常數參照,以便存取 TBMP 相關方法。

影片

VideoManager & Video()

提供 VideoManager 物件的參照,可用於存取影片相關方法。

影片

const VideoManager & Video() const 

提供 VideoManager 物件的連續參照,可用於存取影片相關方法。

~GameServices

 ~GameServices()