iOS - 检测游戏中心是否被禁用

时间:2011-09-05 03:24:28

标签: iphone ios game-center

我正在开发一款统一的iphone游戏。

简短版本: 当用户拒绝进行3次身份验证时,可以禁用游戏中心。可以检测到这种禁用状态吗?

长版: 如果你们中的一些人还没有发现这一点的恐怖,如果你取消游戏中心认证尝试3次,游戏中心会停止提示你登录。之后,没有游戏中心功能可行,也没有尝试使用时会通知您吗?你什么也得不到。你的按钮就会死了。

但是,有一个由GC返回的非描述性错误消息。我想 - 嘿,我只是在错误消息返回时在那里贴上一个警报视图,通知用户游戏中心已被禁用。

好吧,这将是愚蠢的,因为事实证明,当您在实际的身份验证提示上点击取消时,会显示该特定的错误消息...甚至在我认为的其他情况下。所以到目前为止,我可以选择从不告诉玩家什么时候游戏中心被禁用,并希望他们把它想象出来,或者当他们真正下降并且在这里和那里时以一种令人讨厌的,看起来很破旧的方式发送垃圾邮件。好。

有没有办法以编程方式检测游戏中心何时以这种方式被禁用?肯定会拯救每个人该死的心痛。我假设答案是否定的,因为没有spaming用户可能是第一个背后的思考。告诉我,我错了,有人!

4 个答案:

答案 0 :(得分:3)

我经常检查我的游戏是否有3次不正确的尝试。所以我知道游戏中心被禁用,我给用户选择切换到游戏中心并在他们点击游戏中心按钮时登录。

答案 1 :(得分:2)

据我所知,没有办法。游戏中心没有完全禁用,但您需要转到游戏中心应用程序并从那里登录再次使用它。因此,如果任何使用游戏中心的尝试失败,您可以建议您的用户(从游戏中心应用程序登录)。 这不是最好的解决方案,因为你不知道它失败的确切原因,但到现在为止我还没找到更好的解决方案。

答案 2 :(得分:2)

我最近遇到了同样的错误并找出了以下内容。当您对本地播放器进行身份验证时,您可以发现错误,该错误可以让您知道游戏中心已被禁用。

- (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.

答案 3 :(得分:-5)

在iOS 7上解决此问题的唯一方法是

设置/常规/重置/重置所有设置

从那里,您只需再次启动您的应用。游戏中心登录将再次运行。