2011-09-05 24 views
8

Estoy desarrollando un juego iphone de unity.iOS - detectando si Game Center está deshabilitado

versión corta: centro de juegos se puede desactivar cuando el usuario se niega a autenticarse 3 veces. ¿Se puede detectar este estado desactivado? Versión larga: En caso de que algunos de ustedes no hayan tenido el horror de descubrir esto, si cancela un intento de autentificación de centro de juegos 3 veces, el centro de juegos deja de pedirle que inicie sesión. Después de eso, no la funcionalidad del centro de juegos funcionará, ni se le notificará cuando intente usarla. simplemente no obtienes nada. tus botones se apagarán

hay, sin embargo, un mensaje de error no descripto que GC devuelve. Me imaginé - hey, voy a poner una pequeña alerta allí cuando se devuelva el mensaje de error, notificando al usuario que el centro de juegos está desactivado.

bien, eso sería una tontería, porque resulta que ese mensaje de error en particular se muestra cuando presiona cancelar en el mensaje de autenticación real también ... e incluso en otras situaciones, creo. por lo tanto, a partir de ahora, tengo la opción de no contarle nunca al jugador cuando el centro de juegos está desactivado, y esperar que lo expliquen, o de enviarlos de manera molesta y quebrada cuando ellos genuinamente declinan y aquí y allá como bien.

¿Hay alguna manera de detectar programaticamente cuando el centro de juegos se ha desactivado de esta manera? eso seguro salvaría a todos el maldito dolor. Supongo que la respuesta es no, porque el hecho de que los usuarios de la interpenetración no hayan sido los primeros en pensarlo probablemente sea lo primero. dime que estoy equivocado, ¡alguien!

+0

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

Respuesta

1

Como sé, no hay manera. El centro de juegos no está completamente desactivado, pero debes ir a la aplicación del centro de juegos e iniciar sesión desde allí para volver a utilizarlo. Así que puedes sugerir a tus usuarios que lo hagan (inicia sesión desde la aplicación del centro de juegos) si falla cualquier intento de usar el centro de juegos. No es la mejor solución ya que no se sabe la razón exacta por la que falló, pero por ahora no he encontrado una mejor.

2

Siempre reviso mi juego por 3 intentos incorrectos. Así que sé que Gamecenter está deshabilitado y le doy al usuario la opción de cambiar a gamecenter e iniciar sesión cuando hacen clic en un botón del centro de juegos.

+6

Esto no es una respuesta, esto es lo que haces – DivineDesert

+0

Sí, creo que sí, Roel. Pero, ¿cómo se puede detectar que el usuario canceló 3 veces? – VietHung

1

Tuve el mismo error recientemente y descubrí lo siguiente. Cuando autenticas al jugador local, puedes detectar un error que te indica que el Game Center está deshabilitado.

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

El error siempre es 'Error Domain = GKErrorDomain Code = 2" La operación solicitada ha sido cancelada. " UserInfo = 0xa564f10 {NSLocalizedDescription = La operación solicitada ha sido cancelada.} 'Si el usuario solo canceló el modal de Game Center o lo deshabilitó completamente para la aplicación. – azdev

+0

En realidad, estoy obteniendo _La operación solicitada ha sido cancelada _o deshabilitada por el usuario_._ – bobobobo

-3

La única manera de resolver esto en iOS 7 es

Ajustes/general/Restablecer/restablecer todos los ajustes

A partir de ahí, que acaba de lanzar su aplicación de nuevo. Los inicios de sesión de Game Center funcionarán nuevamente.

+0

¿Alguien puede editar esta respuesta flagrantemente irrelevante que se muestra en negrita? –

Cuestiones relacionadas