2011-09-05 13 views
8

ユニティiphoneゲームを開発しています。iOS - ゲームセンターが無効になっているかどうかを検出します。

ショートバージョン: ユーザーが3回認証を拒否するとゲームセンターを無効にすることができます。この無効状態を検出できますか?

ロングバージョン: ゲームセンター認証の試行を3回キャンセルすると、これを見つけ出すことに恐怖を感じていない人がいるかもしれませんが、ゲームセンターではログインを求めるメッセージが表示されなくなります。ゲームセンター機能が動作したり、使用しようとすると通知されたりすることはありません。あなたは何も得られません。あなたのボタンは死んでしまいます。

ただし、GCによって返される1つの非記述エラーメッセージがあります。私はうんざりしました - ちょっと、エラーメッセージが返ってきたら、ゲームセンターが無効になっていることをユーザーに通知して、ちょっとした警告を表示します。

でも、それは実際の認証プロンプトでキャンセルを押したときにその特定のエラーメッセージが表示されることが判明しているので、愚かなことです...他の状況でも私は信じています。今のところ、私はゲームセンターが無効になっているときにプレイヤーに決して言わず、真剣に拒否したり、ここやそこに迷惑をかけたり、よく

このようにゲームセンターが無効になったときにプログラムで検出する方法はありますか?誰もが大嫌いな心を救うだろう。私は答えがノーであると仮定しています。なぜなら、ユーザーを説得することはおそらく最初の考え方の背後にある考えであったからです。私は間違っている、私は誰かを教えて!

+0

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

答えて

1

私が知る限り、方法はありません。ゲームセンターは完全に無効になっているわけではありませんが、ゲームセンターのアプリケーションにアクセスし、そこからログインして再度使用する必要があります。したがって、ゲームセンターを使用しようとする試みが失敗した場合、ユーザーにゲームセンターのアプリからログインするように指示することができます。 失敗した正確な理由がわからないので、これは最善の解決策ではありませんが、今のところ私はより良い解決策を見つけられません。

2

私は常に3回の試行が間違っているかどうかを確認します。それはgamecenterが無効になっていることを知っています。ユーザーにgamecenterに切り替え、gamecenterボタンをクリックするとログインするオプションをユーザに与えます。

+6

これは答えではありません。これはあなたが行うことです – DivineDesert

+0

はい、私はそう思います@ローエル。しかし、そのユーザーが3回キャンセルされたことをどのように検出できますか? – VietHung

1

私は最近同じバグがあり、次のことを考え出しました。ローカルプレーヤーを認証すると、Game Centerが無効であることを知らせるエラーをキャッチできます。

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

エラーは常に 'Error Domain = GKErrorDomain Code = 2"です。要求された操作はキャンセルされました。 UserInfo = 0xa564f10 {NSLocalizedDescription =要求された操作がキャンセルされました}}ユーザーがGame Centerモーダルをキャンセルしただけであるか、アプリケーションのために完全に無効にしているかどうか。 – azdev

+0

実際に私は_要求された操作がキャンセルされました_またはuser_によって無効になっています_。_ – bobobobo

-3

のiOS 7でこれを解決する唯一の方法は

設定である/一般/リセット/そこからすべての設定

をリセットし、あなただけのアプリを再起動します。 Game Centerのログインは再び機能します。

+0

誰かがこの大胆に無関係な答えを太字で編集することはできますか? –

関連する問題