2011-09-05 76 views
8

我正在開發一個統一的iphone遊戲。iOS - 檢測遊戲中心是否被禁用

短版: 當用戶拒絕認證3次時,遊戲中心可以被禁用。可以檢測到這種禁用狀態嗎?

長版本: 如果您有些人還沒有發現這種情況的恐慌,如果您取消3次遊戲中心認證嘗試,遊戲中心會停止提示您登錄。遊戲中心功能將起作用,您也不會在嘗試使用遊戲時收到通知。你什麼都得不到。你的按鈕將會死亡。

但是,有一個由GC返回的非描述性錯誤消息。我設法 - 嘿,我只是在該錯誤消息返回時,在那裏粘貼一點alertview,通知用戶該遊戲中心已被禁用。

好,那將是愚蠢的,因爲事實證明,當你點擊取消實際認證提示,以及...甚至我相信,其他情況下被顯示的特定錯誤消息。所以到現在爲止,我有一個選擇,從不告訴玩傢什麼時候禁用遊戲中心,並希望他們能夠找出答案,或者當他們真正拒絕並且隨時隨地以惡作劇,破碎的方式發送垃圾郵件時好。

有沒有辦法以編程方式檢測遊戲中心何時以這種方式被禁用?那肯定會拯救所有人該死的心痛。我假設答案是否定的,因爲並不是垃圾郵件用戶可能是第一個背後的想法。告訴我我錯了,有人!

+0

[相關](http://stackoverflow.com/questions/18927723/reenabling-gamecenter-after-user-cancelled-3-times-ios7-only) – bobobobo

回答

1

據我所知,沒有辦法。遊戲中心並未完全禁用,但您需要前往遊戲中心應用程序並從那裏登錄才能再次使用遊戲中心。所以如果有任何使用遊戲中心的嘗試失敗,你可以建議你的用戶這樣做(從遊戲中心應用程序登錄)。 這不是最好的解決方案,因爲你不知道它失敗的確切原因,但到現在我還沒有找到更好的解決方案。

2

我總是檢查我的遊戲3次不正確的嘗試。因此,我知道gamecenter已被禁用,並且當用戶點擊一個遊戲中心按鈕時,我給了用戶切換到gamecenter並登錄的選項。

+6

這不是一個答案,這是你做什麼 – DivineDesert

+0

是的,我認爲@Roel。但是你怎麼能檢測到用戶取消了3次? – VietHung

1

我最近有同樣的錯誤,並計算出以下內容。當您對本地玩家進行身份驗證時,您可以捕獲一個錯誤消息,讓您知道遊戲中心已被禁用。

- (void) authenticateLocalPlayer 
{ 
    GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer]; 
    [localPlayer authenticateWithCompletionHandler:^(NSError *error) { 
     if (error != nil) 
     { 
      // You get here if Game Center is disabled -- check error 
      // to figure out what's going on. 
     } 
    }]; 
} 

See here for Apple's documentation.

+2

錯誤始終是'錯誤域= GKErrorDomain代碼= 2「請求的操作已被取消。」的UserInfo = {0xa564f10 = NSLocalizedDescription請求的操作已被取消。}'用戶是否只有完全取消了遊戲中心模式或停用了該應用程序。 – azdev

+0

實際上,我正在獲取_所請求的操作已被用戶取消或禁用。_ – bobobobo

-3

解決這個在iOS 7的唯一方法是

設置/一般/復位/復位所有設置

從那裏,你只要再次啓動您的應用程序。 Game Center登錄將再次運行。

+0

有人可以編輯這個超級粗體顯示的公然無關的答案嗎? – 2014-03-01 03:09:44