2016-08-16 84 views
0

背景: 我有一個工作遊戲,用戶可以通過Google的標準界面開始比賽。 2-4名球員工作正常。手動啓動turnbasedgame多人遊戲,Android

我已經創建了一個自定義界面,玩家可以作爲「朋友」進行連接,並從該界面開始匹配。

Issue: 當我爲2名玩家手動調用Games.TurnBasedMultiplayer.createMatch時,它大部分時間都有效。 函數在onSignInSucceeded結尾處調用。 (我會優先在onActivityResult中調用這個(作爲默認界面),但然後我沒有連接...)

當我爲3-4名玩家打電話時,它永遠不會工作。 回調函數返回GamesStatusCodes.STATUS_NETWORK_ERROR_OPERATION_FAILED。

觀察它似乎也取決於人Goolge ID,有些以G開頭,後面跟着數字,有些只有數字(不以G開頭)。

public void onSignInSucceeded() { 
.... 
TurnBasedMatchConfig tbmc = TurnBasedMatchConfig.builder().addInvitedPlayers(myinvitees).setAutoMatchCriteria(autoMatchCriteria).build(); 

Games.TurnBasedMultiplayer.createMatch(getApiClient(), tbmc).setResultCallback(new ResultCallback<TurnBasedMultiplayer.InitiateMatchResult>() { 
@Override 
public void onResult(TurnBasedMultiplayer.InitiateMatchResult result) { 
    processResult(result); 
} 
}); 

凡myinvitees是一個ArrayList與我的對手

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 

編輯的GoogleIDs: 做了一些小的變化,但總的來說,我有相同的行爲。 有些時候比賽開始(最多4名球員),但它似乎更喜歡以「G」開頭的ID ...

+0

難道是onSignInSucceeded不等於實際連接到互聯網?任何想法,我應該稱之爲開始匹配功能? – Mathoa

+0

[STATUS_NETWORK_ERROR_OPERATION_FAILED](https://developers.google.com/android/reference/com/google/android/gms/games/GamesStatusCodes#STATUS_NETWORK_ERROR_OPERATION_FAILED)表示嘗試執行需要網絡的操作時發生網絡錯誤。 所有4名玩家是否都有穩定的網絡連接? – noogui

+0

這是在創建比賽時。所以沒有其他玩家聯繫。 有穩定的連接。這隻發生在我手動啓動它時。通過Google界面,它始終可以工作... – Mathoa

回答

0

因此,在移動檢查onSignInSucceeded()是否存在開始比賽的請求後, Google似乎已經對我從玩家身上取得的GoogleID做了些什麼。 具有G開頭(以及大量數字)的ID的新用戶似乎可以工作,但不是舊的混合(不以G開始)和新的混合。