Pantalla de Acceso de Acceso a Autenticador Personalizado de Android

Cuando inicia sesión a través del autenticador de Google, la pantalla Permitir acceso (GrantPermissionActivity) es rápida una vez por cuenta por aplicación (uid), sin embargo, no está documentada donde se puede optar por que aparezca esa pantalla para autentificadores de terceros personalizados.

Alguien sabe si hay de todos modos para hacer esto?

Intenté insertar un cheque personalizado e imitar el GrantPermissionActivity, pero el problema es que AuthToken está en caché, así que no pude averiguar cómo aplicar esto en aplicaciones de terceros como el getAuthToken simplemente pasará los códigos personalizados con el token en caché.

Tenga en cuenta que este no es el mismo problema que: ¿Cómo obligar a AccountManager a mostrar la pantalla "Solicitud de acceso" después de que un usuario ya haya permitido el acceso?

Creo que he descubierto una muy buena solución, pero esto no es probablemente la forma en que funciona la pantalla de Google Permitir.

En el Authenticator, obtiene el paquete de llamadas, que no se puede falsificar ya que AccountManager verifica el UID / PID de la aplicación. Utiliza el paquete de llamadas como parte del tipo de token, así como la fecha de instalación de la aplicación (opcional, se encuentra utilizando el gestor de paquetes), de esta manera el token de cada aplicación se almacenará en caché por separado.

Si el tipo de token no contiene el nombre del paquete como paquete de llamada, no se devolverá ningún token.

Para cada tipo de token de autenticación, también verifica un secreto de cliente con respecto a la clave del cliente. A continuación, sólo devolverá la intención de la pantalla Permitir acceso si ésta es la primera vez que el cliente solicita la clave por cuenta por tipo de cuenta personalizada.

Tenga en cuenta que si desea una aplicación de lista blanca, también puede hacerlo en una base de tipo de token de cuenta.

No tengo una respuesta completa para ti, pero tal vez pueda ayudarte un poco en tu camino.

Al observar la implementación de getAuthToken , puede ver que el permiso se otorga automáticamente si el autenticador está usando customTokens . La documentación de AuthenticationDescription también menciona que "Authenticator maneja su propia caché de token y pantalla de permisos" si se usan tokens personalizados. Así que si este es el caso para usted, no creo que sea posible hacer que aparezca esta pantalla.

Intenté insertar un cheque personalizado y imitar el GrantPermissionActivity, pero el problema es que AuthToken está en caché …

Si invalida el token con invalidateAuthToken , debe borrarse de la caché. Sólo recuerde pasar el token que desea invalidar al método (consulte AccountManager: invalidateAuthToken no invalida el token ).

  • ¿Para qué utilizar Android AccountManager?
  • Uso de AccountAuthenticator personalizado con múltiples aplicaciones
  • Android: agregar tono de llamada al contacto no funciona en un contacto que acabo de agregar, pero funciona en un contacto que agregué en la sincronización anterior
  • ¿Por qué no se llama AccountAuthenticator # getAuthToken ()?
  • Personalizar el diálogo al eliminar la cuenta de accountmanager android
  • Android AccountManager addAccount lanzando OperationCanceledException en la devolución de llamada
  • ¿Un buen tutorial para usar AccountManager en Android?
  • Obtener la cuenta de correo electrónico principal del teléfono Android
  • Android obtener el nombre de usuario de Gmail y la contraseña de administrador de cuenta
  • Cómo autorizar en twitter con android AccountManager?
  • Android AccountManager lanza AuthenticatorException: falla de enlace al agregar cuenta
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.