Servicios de juegos de Google Play: Bienvenido <Name> Popup Inconsistent

He intentado algunas sugerencias en otros subprocesos (como forzar el cierre de sesión en el inicio) y no he encontrado una solución a este problema. El problema es con este popup:

Bienvenida <nombre> imagen emergente

Parece muy inconsistente y rara vez aparece.

He añadido un GameHelper.logout() en mi inicio de aplicación en un intento de tener siempre este mensaje aparecer, sin embargo no lo hace.

Más a menudo que no, simplemente no aparece en absoluto.

Los métodos de llamada como getGameClient().getCurrentUser().getIconImageUri() todo el trabajo, y puedo mostrar una imagen de esa manera. Además, puedo enviar invitaciones y la gente se sentará en el vestíbulo del juego conmigo.

¿Hay alguna manera de que este mensaje aparezca de forma consistente cuando haga clic en el botón de inicio de sesión de Google+ en la pantalla principal del juego?

Cabe señalar que estoy usando LibGDX, BaseGameUtils(GameHelper.java) y Google Services (por supuesto).

¿Alguien más tiene problemas con esto?

¡Gracias!

Ok, así que voy a publicar aquí cómo estoy configurado, utilizando LibGDX y GPGS, y no tengo problemas con conseguir el popup para mostrar al iniciar sesión después de haber cerrado sesión.

Primero mi declaración para mi proyecto de Android:

 public class MainActivity extends AndroidApplication implements RequestHandler, GameHelperListener, GoogleInterface, RealTimeMessageReceivedListener, RoomStatusUpdateListener, RoomUpdateListener, OnInvitationReceivedListener, RealTimeReliableMessageSentListener, OnImageLoadedListener, OnStateLoadedListener, ConnectionCallbacks{ private GameHelper mHelper; private GameHelperInterface mGHInterface = null; private ConfirmInterface mConfirmInterface = null; private Handler libGDXHandler; 

El GoogleInterface se utiliza para pasar del hilo de LibGDX al hilo de Android, y el GameHelperInterface y ConfirmInterface son para pasar cosas desde el android al lado de libGDX de la casa (yo uso el confirmInteface para iniciar sesión en el material y el otro para la mensajería, Etc …) El manejador debe asegurarse de que todo lo que venga desde el lado de LibGDX se publique correctamente en el hilo de Android (igual que cualquier cosa en el lado de libGDX que viene de Android se publica usando el Gdx.app.postRunnable ())

Ahora declaro en onCreate ()

 .. setup the gameView etc.. mHelper.setup(this, GameHelper.CLIENT_GAMES | GameHelper.CLIENT_APPSTATE | GameHelper.CLIENT_PLUS, null); mHelper.getPlusClient().registerConnectionCallbacks(this); 

El onStart y onStop:

 @Override public void onStart(){ super.onStart(); mHelper.onStart(this); } @Override public void onStop(){ super.onStop(); mHelper.onStop(); } 

Los métodos Login y Logout dentro del código de Android

 @Override public void Login() { libGDXHandler.post(new Runnable() { @Override public void run() { dLog("beginUserInitatedSignIn()"); //mHelper.signOut(); mHelper.beginUserInitiatedSignIn(); } }); } @Override public void LogOut() { iServerBadAttempts = -1; mHelper.signOut(); } 

El iServerBadAttempts se utiliza para que cuando inicio mi proceso de pantalla en libGDX, puedo pedirle al lado de Android que me dé esa variable … si es -1, entonces sé que no se ha intentado iniciar sesión anteriormente y puede configurar mi Botón de inicio de sesión de Google de forma adecuada, de lo contrario comprobar el estado de la conexión y un par de otras cosas para establecer los botones que utilizo adecuadamente.

Y por si acaso, he aquí cómo le digo a mi código libGDX que mHelper tiene éxito al iniciar sesión:

 @Override public void onSignInSucceeded() { dLog("signed in"); mConfirmInterface.googleSucceeded(); if (mHelper.getInvitationId() != null) { acceptInviteToRoom(mHelper.getInvitationId()); mConfirmInterface.acceptedInvitation(); } } 

Y aquí está logcat de entrar y salir

09-24 09: 14: 31.495: D / LDGame MainActivity (6021): beginUserInitatedSignIn () 09-24 09: 14: 31.495: I / SplashScreen (6021) Helper (6021): Inicia el flujo de inicio de USER-INITIATED. 09-24 09: 14: 31.495: D / Helper (6021): isGooglePlayServicesAvailable devuelto 0 09-24 09: 14: 31.495: D / Helper (6021): beginUserInitiatedSignIn: inicia un nuevo flujo de inicio de sesión. 09-24 09: 14: 31.495: D / Helper (6021): Inicio de las conexiones. 09-24 09: 14: 31.495: D / Helper (6021): connectNextClient: clientes solicitados: 7, clientes conectados: 0 09 09: 14: 31.495: D / Helper (6021): Cambio de estado DESCONECTADO -> CONNECT 09-24 -24 09: 14: 31.495: D / Helper (6021): Clientes pendientes: 7 09-24 09: 14: 31.495: D / Helper (6021): Connect GamesClient. 09-24: 09: 14: 31.535: D / Helper (6021): Error de conexión: 09-24 09: 14: 31.535: D / Helper (6021): onConnectionFailed 09-24 ): – código: SIGN_IN_REQUIRED (4) 09-24 09: 14: 31.535: D / Helper (6021): – resolvible: true 09-24 09: 14: 31.535: D / Helper (6021): Detalles: ConnectionResult { StatusCode = SIGN_IN_REQUIRED, resolution = PendingIntent {41d914d0: android.os.BinderProxy@41ef40c8}} 09-24 09: 14: 31.535: D / Helper (6021): onConnectionFailed: desde que el usuario inició sesión, resolvió el problema. 09-24 09: 14: 31.535: D / Helper (6021): resolverConnectionResult: intentando resolver resultado: ConnectionResult {statusCode = SIGN_IN_REQUIRED, resolution = PendingIntent {41d914d0: android.os.BinderProxy@41ef40c8}} 09-24 09:14 : 31.535: D / Helper (6021): El resultado tiene resolución. Empezarlo. 09-24 09: 14: 31.615: I / ScreenLog (6021): SCREEN PAUSE: SplashScreen 09-24 09: 14: 31.615: D / SensorManager (6021): unregisterListener :: Listener = com.badlogic.gdx.backends.android .AndroidInput $ SensorListener @ 41dc06e0 09-24 09: 14: 31.615: I / AndroidGraphics (6021): pausa 09-24 09: 14: 31.615: D / Sensores (6021) 24 09: 14: 31.615: I / Sensores (6021): sendDelay — 200000000 09-24 09: 14: 31.615: D / SensorManager (6021): JNI – sendDelay 09-24 09: 14: 31.615: I / SensorManager (6021): Set normal delay = true 09-24 09: 14: 31.615: D / SensorManager (6021): unregisterListener :: Listener = com.badlogic.gdx.backends.android.AndroidInput$SensorListener@41db99a0 09-24 09: 14: 31.615: I / Sensores (6021): sendDelay — 200000000 09-24 09: 14: 31.615: D / Sensores (6021) D / SensorManager (6021): JNI – sendDelay 09-24 09: 14: 31.620: I / SensorManager (6021): Ajustar delay = normal 09-24 09: 14: 31.620: I / AndroidInput (6021): sensor (6021): showActivityResult: req = RC_RESOLVE, resp = RESULT_OK 09-09 09: 14: 32.220: W / IInputConnectionWrapper (6021): showStatusIcon inactivo InputConnection 09-24 09: 24 09: 14: 37.010: D / Helper (6021): onAR: La resolución fue RESULT_OK, conectando de nuevo el cliente actual. 09-24 09: 14: 37.065: D / LDGame MainActivity (6021): Actividad Resultado 09-24 09: 14: 37.065: D / SensorManager (6021): registerListener :: handle = 0 name = LSM330DLC Acelerómetro de 3 ejes = 20000 Listener = com.badlogic.gdx.backends.android.AndroidInput$SensorListener@41ef6c38 09-24 09: 14: 37.070: D / SensorManager (6021): registerListener :: handle = 1 name = AK8975C Sensor de campo magnético de 3 ejes Delay = 20000 Listener = com.badlogic.gdx.backends.android.AndroidInput$SensorListener@41ef6f00 09-24 09: 14: 37.070: I / AndroidInput (6021): configuración del detector de sensores 09-24 09: 14: 37.100: ScreenLog (6021): RESET DE PANTALLA: SplashScreen 09-24 09: 14: 37.100: I / ScreenLog (6021): RESUMEN DE PANTALLA: SplashScreen 09-24 09: 14: 37.160: D / dalvikvm (6021): GC_CONCURRENT liberado 674K, 13 % Libre 13233K / 15047K, pausado 7ms + 3ms, total 61ms 09-24 09: 14: 37.160: D / dalvikvm (6021): WAIT_FOR_CONCURRENT_GC bloqueado 22ms 09-24 09: 14: 37.180: D / dalvikvm (6021): GC_FOR_ALLOC liberado 10K, 13% libre 13222K / 15047K, pausado 18ms, total 18ms 09-24 09: 14: 37.180: I / dalvikvm-heap (6021): Crecer heap (frag case) a 13.932MB para 313374 byte asignación 09-24 14: 37.200: D / dalvikvm (6021): GC_FOR_ALLOC liberado <1K, 12% libre 13528K / 15367K , Pausado 19ms, total 19ms 09-24 09: 14: 37.235: D / SensorManager (6021): onAccuracyChanged :: accuracy = 3 09-24 09: 14: 37.240: D / Helper (6021): onConnected: ¡conectado! Cliente = 1 09-24 09: 14: 37.240: D / Helper (6021): Clientes conectados actualizados a: 1 09-24 09: 14: 37.240: D / Helper (6021): connectNextClient: clientes solicitados: 7 clientes conectados : 1 09-24 09: 14: 37.240: D / Helper (6021): Clientes pendientes: 6 09-24 09: 14: 37.240: D / Helper (6021): Conectando PlusClient. 09-24 09: 14: 37.395: D / dalvikvm (6021): GC_FOR_ALLOC liberado 511K, 14% libre 13236K / 15367K, pausado 20ms, total 20ms 09-24 09: 14: 37.570: D / dalvikvm (6021): GC_CONCURRENT liberado (6021): GC_CONCURRENT liberado 482K, 14% libre 13295K / 15367K, pausado 12ms + 2ms, 33ms total de los 33ms, 14% libre 13319K / 15367K, pausado 1ms + 1ms, total 34ms 09-24 09: 14: 37.755: D / dalvikvm 09-24 09: 14: 37.840: I / AndroidGraphics (6021): reanudado 09-24 09: 14: 38.055: D / Helper (6021): onConnected: ¡conectado! Cliente = 2 09-24 09: 14: 38.055: D / Helper (6021): Clientes conectados actualizados a: 3 09-24 09: 14: 38.055: D / Helper (6021): connectNextClient: clientes solicitados: 7 clientes conectados : 3 09-24 09: 14: 38.055: D / Helper (6021): Clientes pendientes: 4 09-24 09: 14: 38.055: D / Helper (6021): Conectando AppStateClient. 09-24 09: 14: 38.070: D / LDGame MainActivity (6021): Figuras 09-24 09: 14: 38.090: D / (6021): onConnected: conectado! Cliente = 4 09-24 09: 14: 38.090: D / Helper (6021): Clientes conectados actualizados a: 7 09-24 09: 14: 38.090: D / Helper (6021): connectNextClient: clientes solicitados: 7 clientes conectados : 7 09-24 09: 14: 38.090: D / Helper (6021): Clientes pendientes: 0 09-24 09: 14: 38.090: D / Helper (6021): Todos los clientes están ahora conectados. ¡Conectarse con éxito! 09-24 09: 14: 38.090: D / Helper (6021): Todos los clientes solicitados conectados. ¡El inicio de sesión se ha realizado correctamente! 09-24 09: 14: 38.090: D / Helper (6021): Notificación de LISTENER de inicio de sesión SUCCESS 09-24 09: 14: 38.090: D / Helper (6021): Cambio de estado CONNECTING -> CONNECTED 09-24 09: 14: 38.090: D / LDGame MainActivity (6021): ha iniciado sesión

Para iniciar sesión, nota clave es que debe ver el "D / Helper (6021): onConnectionFailed: desde que el usuario inició sesión, solución de problemas." Ya que esto significará que la cancelación de la notificación trabajó previamente

Y cerrar sesión logcat

09-24 09: 14: 52.145: D / Helper (6021): Borrar cuenta predeterminada en PlusClient. 09-24 09: 14: 52.165: D / Helper (6021): Salir de GamesClient. 09-24 09: 14: 52.190: D / Helper (6021): Procedimiento con desconexión. 09-24 09: 14: 52.190: D / Helper (6021): killConnections: matar las conexiones. 09-24 09: 14: 52.190: D / Helper (6021): Desconectar GamesClient. 09-24 09: 14: 52.195: D / Helper (6021): Desconectar PlusClient. 09-24 09: 14: 52.195: D / Helper (6021): Desconectar AppStateClient. 09-24 09: 14: 52.195: D / Helper (6021): killConnections: todos los clientes desconectados. 09-24 09: 14: 52.195: D / Helper (6021): Cambio de estado CONECTADO -> DESCONECTADO

¡Espero que ayude!

  • El deslizador siempre tiene el ancho predeterminado
  • Tween aditivo con Universal Tween Engine en libgdx?
  • La imagen no es un poder de 2?
  • ¿Puedo añadir un actor a la capa posterior en Libgdx?
  • Gradle se cuelga en tareas de ejecución: [: android: generateDebugSources
  • Libgdx: SpriteBatch, shader de fragmentos en dispositivos Samsung Android funcionan incorrectamente
  • Aplicación que carga las texturas incorrectas al abrir de nuevo
  • Puerto Andengine juego a otra plataforma?
  • SDK ubicación no encontrada. ANDROID_HOME - construcción de un proyecto gradle en eclipse en un MAC
  • LibGDX texturepacker rotación
  • Manejo multitouch en libgdx
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.