¿Cómo puedo salir con AndroidAccountManager?

Puedo iniciar sesión con Android AccountManager con este código: http://code.google.com/p/google-api-java-client/wiki/AndroidAccountManager

¿Pero no sé cómo cerrar la sesión?

No lo haces. Cuando utiliza la autenticación android integrada, se autentica utilizando el nombre de usuario y la contraseña que el usuario ha proporcionado en el panel de control "Cuentas y sincronización". Una vez que tenga esa autenticación, la utilizará para obtener un auth-token que debe almacenar en caché y utilizar hasta que se vuelva malo.

Por lo tanto, vayamos con la forma de acceder a los servicios de google utilizando una cuenta de estilo "com.google". Terminarás la autenticación usando AccountManager, cuando tu aplicación quiera sincronizar (Deberías usar un SyncAdapter para hacer esto). Una vez que se autentique, obtendrá un auth-token. Esta es una cadena grande de letras al azar, que actúa como una "clave" en las siguientes llamadas web. Guardarás esto, y mientras sea bueno, no necesitarás autenticarte de nuevo. Así que, quiero ir a buscar … digamos, una cartera de finanzas de google. Incluye el auth-token como parte del encabezado http get. Una de dos cosas sucede:

  1. Google le gusta ese token y lo usa (en lugar de un par de nombre de usuario / contraseña) para autenticar y devuelve datos para su solicitud.
  2. Google devuelve el error HTTP 40x indicando que el token auth-token proporcionado no es bueno.

Este último caso ocurrirá por dos razones:

  1. Es demasiado viejo. Google le gusta que vuelva a autenticarse periódicamente (al igual que usted tiene que ingresar su contraseña en gmail.com cada semana o dos para asegurarse de que sigue siendo usted.) Cuando esto sucede, Invalidate token de autenticación (hay una llamada de función) y obtener una uno nuevo.
  2. El usuario ha cambiado su contraseña desde que obtuvo el token de autenticación. Lo mismo, excepto en el camino, el dispositivo no se autenticará, y luego se quejará al usuario de que necesitan volver a introducir su contraseña, y hasta que lo hagan, obtendrá un token de autenticación NULL o la llamada Bloquearán hasta que obtengan una contraseña (Dependiendo de la función que utilice para obtener el token).

En cualquier caso, nunca se desconecta. Sólo usa el servicio con el token de autenticación que has obtenido y almacenado en caché, hasta que no lo hagas. Piense en el token de autenticación que obtiene como si fuera una clave de sesión que permanece bien mientras lo esté utilizando.

¿Por qué no invalidar su token de autenticación actual llamando

  AccountManager.getInstance().invalidateAuthToken(accountType, currentToken); 

Documentación de AccountManager.invalidateAuthToken

AccountManager clearPassword (Cuenta de cuenta)

Desde el AccountManager:

Olvida una contraseña guardada. Esto borra la copia local de la contraseña; No cambia la contraseña de la cuenta del usuario en el servidor. Tiene el mismo efecto que setPassword(account, null) pero requiere menos permisos y puede ser utilizado por aplicaciones o interfaces de administración para "cerrar sesión" de una cuenta.

  • Gestión de sesiones de Android
  • Cómo resolver Session 'app': error?
  • Hacer un login con facebook usando Facebook SDK 3.0
  • Parámetros incorrectos: BadParametersError: Los parámetros eran incorrectos. Queríamos capacidades requeridas en la cuadrícula de Selenium mientras ejecuta Appium
  • Inicio de sesión de Android - autenticador de cuentas vs autenticación manual
  • Sesión de inicio de sesión - Actividades
  • Patrón de diseño de inicio de sesión de aplicaciones de Android
  • Android: Persistencia de la sesión de servidor mediante cookie al realizar llamadas HTTP
  • Cómo hacer la reanudación de sesión SSL en Android
  • SDK de Android Facebook: comprueba si el usuario está conectado o no
  • Facebook SDK v3.5.2 - Solicitar permisos desde una sesión cerrada
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.