gpg::
  #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 &提供 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  | const LeaderboardManager &針對用於存取及操作成就的 LeaderboardManager 物件提供常數參照。 | 
| Players() | 提供 PlayerManager 物件的參照,允許存取玩家的相關資訊。 | 
| Players() const  | const PlayerManager &提供 PlayerManager 物件的 const 參照,允許存取玩家相關資訊。 | 
| RealTimeMultiplayer() | 提供 RealTimeMultiplayerManager 物件的參照,允許存取 RTMP 相關方法。 | 
| RealTimeMultiplayer() const  | const RealTimeMultiplayerManager &提供 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  | const TurnBasedMultiplayerManager &提供 TurnBasedMultiplayerManager 物件的 const 參照,允許存取 TBMP 相關方法。 | 
| Video() | 提供 VideoManager 物件的參照,允許存取影片相關方法。 | 
| Video() const  | const VideoManager &提供 VideoManager 物件的 const 參照,該物件可讓您存取影片相關方法。 | 
| 類別 | |
|---|---|
| gpg:: | 用於建立及設定 GameServices 類別的例項。 | 
公開類型
FlushCallback
std::function< void(FlushStatus)> FlushCallback
定義接收 Flush 作業結果 (狀態) 的回呼類型。
用於 Flush()。
公開函式
清除
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_* 回呼以處理授權狀態變更,而非輪詢。
RealTimeMultiplayer
RealTimeMultiplayerManager & RealTimeMultiplayer()
提供 RealTimeMultiplayerManager 物件的參照,允許存取 RTMP 相關方法。
RealTimeMultiplayer
const RealTimeMultiplayerManager & RealTimeMultiplayer() const
提供 RealTimeMultiplayerManager 物件的 const 參照,允許存取 RTMP 相關方法。
SignOut
void SignOut()
開始非同步登出程序。
呼叫 SignOut 後,在收到「OnAuthActionFinishedCallback」指出成功登出之前,您不應在 GameServices 中呼叫任何作業。
StartAuthorizationUI
void StartAuthorizationUI()
開啟平台專屬使用者授權流程。
TurnBasedMultiplayer
TurnBasedMultiplayerManager & TurnBasedMultiplayer()
提供 TurnBasedMultiplayerManager 物件的參照,允許存取 TBMP 相關方法。
TurnBasedMultiplayer
const TurnBasedMultiplayerManager & TurnBasedMultiplayer() const
提供 TurnBasedMultiplayerManager 物件的 const 參照,允許存取 TBMP 相關方法。
~GameServices
~GameServices()
