He visto AccountManager en el SDK de Android y que se usa para almacenar información de la cuenta. Por lo tanto, no puedo encontrar ninguna discusión general sobre para qué está destinada. ¿Alguien sabe de alguna discusión útil sobre cuál es la intención detrás de AccountManager y qué le compra? ¿Alguna opinión sobre para qué tipo de cuentas es adecuada? ¿Sería aquí donde pondría la información de la cuenta de su usuario para un servicio web general?
android
accountmanager
Phil
fuente
fuente
Respuestas:
Esta pregunta es un poco vieja, pero creo que sigue siendo de buen interés.
AccountManager
,SyncAdapter
YContentProvider
van de la mano.SyncAdapter
sin unAccount
en elAccountManager
.SyncAdapter
sin unContentProvider
.Pero puedes:
ContentProvider
sin los otros.AccountManager
sin los otros (pero no puede usar unAccountManager
sin unSyncAdapter
Android 2.2 / Froyo API 8 anterior)Con
AccountManager
/SyncAdapter
/ContentProvider
:AccountManager
ofrece a los usuarios un punto central (Configuración> Cuentas) para definir sus credencialesSyncAdapter
. Esto puede ser bueno para optimizar la batería (por ejemplo, no se realiza la sincronización cuando la red está inactiva)ContentProvider
es una forma conveniente de compartir datos entre aplicaciones Nota: existen otros métodos de comunicación entre procesos en Android .LaContentProvider
programa el acceso de base de datos en un subproceso de fondoAsyncQueryHanlder
ayuda para consultar elContentProvider
en un subproceso en segundo plano, la prevención de errores de aplicación que no responde (ANR), mientras que no requieren que usted resuelva expresamente roscado.ContentProvider
se vincula conContentResolver
el observador: esto significa que es fácil notificar las vistas cuando se cambia el contenidoEn pocas palabras : el marco
AccountManager
/SyncAdapter
/ContentProvider
ayuda si desea sincronizar datos de un recurso web. Se requieren implementaciones falsas / tontas en la API 7. TambiénAsyncTaskLoader
Finalmente, si usa un
SyncAdapter
, considere seriamente Firebase Cloud Messaging (anteriormente Google Cloud Messaging) también conocido como "notificaciones push" para tener actualizaciones más recientes y un uso optimizado de la batería.fuente
La clase AccountManager está integrada con sus cuentas telefónicas. Entonces, si sigue todas las guías y lo hace funcionar correctamente, verá sus cuentas en el menú "Configuración-> cuentas y sincronización". Desde allí puede personalizarlos o incluso eliminarlos. Además, el AccountManager tiene un caché de los tickets de autenticación para sus cuentas. Esto también se puede usar si no planea sincronizar su cuenta (que yo sepa).
Si no desea que sus cuentas aparezcan en ese menú, no debe usar AccountManager y almacenar los datos de las cuentas en otro lugar (tal vez en las preferencias compartidas) http://developer.android.com/guide/topics/data/data -storage.html
fuente
De http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/ :
fuente
El
AccountManager
es bueno por las siguientes razones:Accounts
Sin embargo, esta no es la razón principal para usarlo , ya que puede administrarlo fácilmente en su aplicación sin la necesidad de este aspecto eleganteAccounts
...Accounts
es deshacerse de la autorización tradicional con nombre de usuario y contraseña cada vez que el usuario solicita una función autorizada, porque la autenticación se realiza en segundo plano y se le solicita al usuario su contraseña solo en ciertas condiciones, lo que Llegaré a eso más tarde.Accounts
función en Android también elimina la necesidad de definir el propio tipo de cuenta. Probablemente haya encontrado las aplicaciones que usan cuentas de Google para obtener autorización, lo que ahorra la molestia de crear una nueva cuenta y recordar sus credenciales para el usuario.Accounts
se puede agregar de forma independiente a través de Configuración → CuentasAccounts
. Por ejemplo, el cliente puede acceder al material protegido al mismo tiempo en su dispositivo Android y PC sin la necesidad de inicios de sesión recurrentes.Accounts
función en Android es separar a las dos partes involucradas en cualquier negocio que dependa delAccounts
llamado autenticador y propietario del recurso, sin comprometer las credenciales del cliente (usuario). Los términos pueden parecer bastante vagos, pero no te rindas hasta que leas el siguiente párrafo ...…Permítanme detallar esto último con un ejemplo de una aplicación de transmisión de video. La Compañía A es titular de un negocio de transmisión de video en contrato con la Compañía B para proporcionar a sus miembros ciertos servicios de transmisión premium. La empresa B emplea un método de nombre de usuario y contraseña para reconocer a su usuario. Para que la Compañía A reconozca a los miembros premium de B, una forma sería obtener la lista de ellos de B y utilizar un mecanismo similar de coincidencia de nombre de usuario / contraseña. De esta manera, el autenticador y el propietario del recurso son los mismos (Compañía A). Además de la obligación de los usuarios de recordar una segunda contraseña, es muy probable que establezcan la misma contraseña que el perfil de su Compañía B para usar los servicios de A. Esto obviamente no es favorable.
Para mitigar las deficiencias anteriores, se introdujo OAuth. Como estándar abierto para la autorización, en el ejemplo anterior, OAuth exige que la autorización sea realizada por la Compañía B (autenticador) emitiendo un token llamado Token de acceso para los usuarios elegibles (terceros) y luego proporcionando a la Compañía A (propietario del recurso) la ficha Entonces, ninguna ficha significa que no hay elegibilidad.
He elaborado más sobre esto y más
AccountManager
sobre mi sitio web aquí.fuente