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.
- ¿por qué requestIdToken devuelve null?
- ¿Inicia sesión de Google no funciona en Android?
- Pakage para verificar el token de inicio de sesión de Google en Go que se ejecuta en GAE
- ¿Cómo verificar correctamente la integridad de un token de Google?
- Signin de Google Firebase dando estado 12501 (no funciona), en la versión de creación de la versión y jks SHA
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.
- Android: ¿Cómo obtener un token de actualización mediante Google Sign-In API?
- Deprecated Plus.PeopleApi.load
- Iniciar sesión con google para android no funciona en la versión apk
- Cómo resolver el problema de "com.google.android.gms.auth.api.signin.internal.SignInHubActivity" ActivityNotFoundException in google signin integration
- GoogleApiClient no está conectado si se utiliza desde fragmento
- Google Android de inicio de sesión está parpadeando un pequeño cuadro blanco vacío al iniciar sesión en un usuario
- Firebase sobrescribe Signin con la cuenta de Google
- Compruebe si el usuario ya ha iniciado sesión utilizando Auth.GoogleSignInApi?
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(); }
- Lo que es más rápido al leer grandes cantidades de datos: XML o SQLite
- En la API de Firebase 9.0.0, ¿cómo comprobar que el usuario tiene una sesión Auth válida o no?