Cerrar sesión desde google play

Cuando se muestra el tablero de control en la pantalla hay una opción llamada "ajuste". En el interior hay una opción "Signout". Cuando hice clic en salir de la tabla de clasificación se cierra,

Problema.

Si comprobé el estado de inicio de sesión, la función siguiente siempre devuelve true. Significa que el mGoogleApiClient está conectado. Y por lo tanto, cuando he intentado hacer clic en el icono que muestra el leaderboard siempre tiene el responseCode RESULT_RECONNECT_REQUIRED.

Este problema desaparece si reinicio mi aplicación

public boolean isSignedIn() { return mGoogleApiClient != null && mGoogleApiClient.isConnected(); } 

Pregunta.

¿Cómo sabe el programa que el usuario ha cerrado la sesión en la pantalla de clasificación.

Tienes que coger la onActivityResult en onActivityResult y llamar a GoogleApiClient.disconnect() tú mismo ya que la conexión está en un estado inconsistente ( fuente ).

Por lo tanto, cuando abre la tabla de clasificación utilizando el código siguiente:

 activity.startActivityForResult(Games.Leaderboards.getLeaderboardIntent(googleApiClient, leaderboardId), MY_CUSTOM_LEADERBOARD_RESULT_CODE); 

Deberá manejar el evento de salida como sigue:

 public void onActivityResult(int requestCode, int responseCode, Intent intent) { boolean userLoggedOut = (responseCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) && (requestCode == MY_CUSTOM_LEADERBOARD_RESULT_CODE); if (userLoggedOut) { googleApiClient.disconnect(); } } 

Debería manejar RESULT_RECONNECT_REQUIRED llamando a reconnect () .

Si hubo un error transitorio con la conexión, esto volverá a conectar el reproductor en silencio. Si realmente cancelaron la sesión, se llamará onConnectionFailed () y podrá restablecer la UI / juego para que sea apropiado para el estado no conectado.

  if (resultCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) { mGoogleApiClient.reconnect(); } 
  • Cómo configurar el texto del cuadro de diálogo de google api en el idioma predeterminado de la aplicación
  • Google api gettoken (Context, String, String) ahora está obsoleto
  • Plus.PeopleApi.getCurrentPerson obsoleta en los servicios de Play 8.4. ¿Cómo obtener el nombre, apellido y sexo del usuario usando GoogleSignInApi?
  • Android: ¿Qué es transport y jsonFactory en GoogleIdTokenVerifier.Builder?
  • GoogleApiClient tiene un Plus.API opcional y no está conectado a Plus con el nuevo signo de Google introducido en Play Services 8.3
  • No se puede resolver el símbolo 'Auth' para la integración de Google en android studio
  • AWS Cognito: se ocupa del tiempo de expiración del token
  • No se puede establecer el ámbito de acceso de Google en Android
  • Obtener imagen de perfil de alta calidad de GoogleSignInAccount
  • Se requiere la autenticación de Google con un servidor de back-end
  • Inicia sesión de Google en la aplicación de Android para consumir Cloud Endpoints backend
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.