J'ai vu AccountManager dans le SDK Android et qu'il est utilisé pour stocker les informations de compte. Ainsi, je ne trouve aucune discussion générale sur ce à quoi il est destiné. Quelqu'un a-t-il connaissance de discussions utiles sur l'intention derrière AccountManager et ce qu'il vous achète? Avez-vous des opinions sur le type de comptes auquel cela convient? Serait-ce là où vous mettriez les informations de compte de votre utilisateur pour un service Web général?
154
Réponses:
Cette question est un peu ancienne, mais je pense qu'elle est toujours d'un bon intérêt.
AccountManager
,SyncAdapter
etContentProvider
allez ensemble.SyncAdapter
sans unAccount
dans leAccountManager
.SyncAdapter
sans unContentProvider
.Mais tu peux:
ContentProvider
sans les autres.AccountManager
sans les autres (mais vous ne pouvez pas utiliser unAccountManager
sans unSyncAdapter
avant Android 2.2 / Froyo API 8)Avec
AccountManager
/SyncAdapter
/ContentProvider
:AccountManager
donne aux utilisateurs un point central (Paramètres> Comptes) pour définir leurs informations d'identificationSyncAdapter
. Cela peut être utile pour optimiser la batterie (aucune synchronisation n'est effectuée lorsque le réseau est en panne, par exemple)ContentProvider
est un moyen pratique de partager des données entre les applications Remarque: il existe d' autres méthodes de communication inter-processus sur Android .L'ContentProvider
les horaires d' accès de thread - base de données en arrière - planAsyncQueryHanlder
aide à interroger leContentProvider
dans un thread d'arrière - plan, ce qui empêche les erreurs d'application ne répond pas (ANR) sans vous obliger à gérer explicitement le filetage.ContentProvider
est lié àContentResolver
l'observateur de: cela signifie qu'il est facile de notifier les vues lorsque le contenu est modifiéBottom line : le framework
AccountManager
/SyncAdapter
/ vousContentProvider
aide si vous souhaitez synchroniser les données d'une ressource Web. Des implémentations fausses / stupides sont requises sur l'API 7. AussiAsyncTaskLoader
Enfin, si vous utilisez un
SyncAdapter
, envisagez sérieusement Firebase Cloud Messaging (anciennement Google Cloud Messaging), également appelé «notifications push», pour bénéficier de mises à jour plus récentes et d'une utilisation optimisée de la batterie.la source
La classe AccountManager est intégrée à vos comptes téléphoniques. Donc, si vous suivez tous les guides et que cela fonctionne correctement, vous verrez vos comptes dans le menu "Paramètres-> comptes et synchronisation". De là, vous pouvez les personnaliser ou même les supprimer. De plus, le accountManager a un cache des tickets d'authentification pour vos comptes. Cela peut également être utilisé si vous ne prévoyez pas de synchroniser votre compte (pour autant que je sache).
Si vous ne voulez pas que vos comptes apparaissent dans ce menu, vous ne devez pas utiliser le AccountManager et stocker les données des comptes ailleurs (peut-être dans les préférences partagées) http://developer.android.com/guide/topics/data/data -storage.html
la source
De http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/ :
la source
Le
AccountManager
est bon pour les raisons suivantes:Accounts
, cependant, car vous pouvez facilement gérer cela dans votre application sans avoir besoin de cetteAccounts
chose sophistiquée ….Accounts
est de se débarrasser de l'autorisation traditionnelle avec nom d'utilisateur et mot de passe à chaque fois qu'une fonctionnalité autorisée est demandée par l'utilisateur, car l'authentification a lieu en arrière-plan et l'utilisateur n'est demandé son mot de passe que dans certaines conditions, ce qui J'y reviendrai plus tard.Accounts
fonctionnalité dans Android supprime également la nécessité de définir son propre type de compte. Vous avez probablement rencontré des applications utilisant des comptes Google pour l'autorisation, ce qui évite d'avoir à créer un nouveau compte et à mémoriser ses informations d'identification pour l'utilisateur.Accounts
peut être ajouté indépendamment via Paramètres → ComptesAccounts
. Par exemple, le client peut accéder à du matériel protégé en même temps sur son appareil Android et son PC sans avoir besoin de connexions récurrentes.Accounts
fonctionnalité dans Android est de séparer les deux parties impliquées dans toute entreprise dépendanteAccounts
, soi-disant authentificateur et propriétaire de la ressource, sans compromettre les informations d'identification du client (utilisateur). Les termes peuvent sembler assez vagues, mais n'abandonnez pas avant d'avoir lu le paragraphe suivant… 😉Permettez-moi de développer ce dernier avec un exemple d'application de streaming vidéo. La société A est titulaire d'une entreprise de streaming vidéo en contrat avec la société B pour fournir à ses certains membres des services de streaming premium. La société B utilise une méthode de nom d'utilisateur et de mot de passe pour reconnaître son utilisateur. Pour que la société A reconnaisse les membres premium de B, une façon serait d'obtenir la liste d'entre eux auprès de B et d'utiliser un mécanisme de correspondance nom d'utilisateur / mot de passe similaire. De cette façon, l'authentificateur et le propriétaire de la ressource sont identiques (société A). Outre l'obligation des utilisateurs de se souvenir d'un deuxième mot de passe, il est très probable qu'ils définissent le même mot de passe que le profil de leur entreprise B pour utiliser les services de A. Ce n'est évidemment pas favorable.
Pour pallier les lacunes ci-dessus, OAuth a été introduit. En tant que norme ouverte d'autorisation, dans l'exemple ci-dessus, OAuth exige que l'autorisation soit effectuée par la société B (authentificateur) en émettant un jeton appelé jeton d'accès pour les utilisateurs éligibles (tiers), puis en fournissant à la société A (propriétaire de la ressource) le jeton. Donc pas de jeton signifie pas d'éligibilité.
J'ai développé plus à ce sujet et plus
AccountManager
sur mon site Web ici.la source