Ich habe AccountManager im Android SDK gesehen und es wird zum Speichern von Kontoinformationen verwendet. Daher kann ich keine allgemeine Diskussion darüber finden, wofür es bestimmt ist. Kennt jemand hilfreiche Diskussionen darüber, was die Absicht hinter AccountManager ist und was es Ihnen kauft? Irgendwelche Meinungen darüber, für welche Art von Konten dies geeignet ist? Würden Sie hier die Kontoinformationen Ihres Benutzers für einen allgemeinen Webdienst ablegen?
android
accountmanager
Phil
quelle
quelle
Antworten:
Diese Frage ist etwas alt, aber ich denke, sie ist immer noch von gutem Interesse.
AccountManager
,SyncAdapter
UndContentProvider
gehen zusammen.SyncAdapter
ohne eineAccount
in der habenAccountManager
.SyncAdapter
ohne ein habenContentProvider
.Doch kannst du:
ContentProvider
ohne die anderen.AccountManager
ohne die anderen (aber Sie können keineAccountManager
ohne eineSyncAdapter
vor Android 2.2 / Froyo API 8 verwenden)Mit
AccountManager
/SyncAdapter
/ContentProvider
:AccountManager
gibt Benutzern einen zentralen Punkt (Einstellungen> Konten), um ihre Anmeldeinformationen zu definierenSyncAdapter
. Dies kann hilfreich sein, um die Batterie zu optimieren (z. B. erfolgt keine Synchronisierung, wenn das Netzwerk ausfällt).ContentProvider
ist eine bequeme Möglichkeit, Daten zwischen Anwendungen auszutauschen. Hinweis: Es gibt andere Methoden für die Kommunikation zwischen Prozessen unter Android .DieContentProvider
Planen des Datenbankzugriffs in einem HintergrundthreadAsyncQueryHanlder
Hilfe zum AbfragenContentProvider
in einem Hintergrundthread verhindert ANR-Fehler (Application Not Responsive), ohne dass Sie das Threading explizit behandeln müssen.ContentProvider
bindet anContentResolver
den Beobachter: Dies bedeutet, dass es einfach ist, Ansichten zu benachrichtigen, wenn Inhalte geändert werdenUnterm Strich : das Framework
AccountManager
/SyncAdapter
/ContentProvider
hilft , wenn Sie Daten synchronisieren aus einer Web - Ressource wollen. Für API 7 sind gefälschte / dumme Implementierungen erforderlichAsyncTaskLoader
Wenn Sie eine verwenden
SyncAdapter
, sollten Sie Firebase Cloud Messaging (früher Google Cloud Messaging), auch bekannt als "Push-Benachrichtigungen" , ernsthaft in Betracht ziehen , um aktuellere Updates und eine optimierte Akkunutzung zu erhalten.quelle
Die AccountManager-Klasse ist in Ihre Telefonkonten integriert. Wenn Sie also alle Anleitungen befolgen und es richtig funktionieren lassen, werden Ihre Konten unter dem Menü "Einstellungen-> Konten und Synchronisierung" angezeigt. Von dort aus können Sie sie anpassen oder sogar löschen. Darüber hinaus verfügt der accountManager über einen Cache mit den Authentifizierungstickets für Ihre Konten. Dies kann auch verwendet werden, wenn Sie nicht vorhaben, Ihr Konto zu synchronisieren (soweit ich weiß).
Wenn Sie nicht möchten, dass Ihre Konten in diesem Menü angezeigt werden, sollten Sie den AccountManager nicht verwenden und die Kontodaten an anderer Stelle speichern (möglicherweise in den freigegebenen Einstellungen). Http://developer.android.com/guide/topics/data/data -storage.html
quelle
Von http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/ :
quelle
Das
AccountManager
ist aus folgenden Gründen gut:Accounts
, da Sie dies in Ihrer App problemlos verwalten können, ohne dass Sie dieses ausgefalleneAccounts
Ding benötigen .Accounts
besteht darin, die herkömmliche Autorisierung mit Benutzername und Kennwort jedes Mal zu entfernen, wenn eine autorisierte Funktion vom Benutzer angefordert wird, da die Authentifizierung im Hintergrund stattfindet und der Benutzer nur unter bestimmten Bedingungen nach seinem Kennwort gefragt wird Ich werde später darauf zurückkommen.Accounts
Funktion in Android entfällt auch die Notwendigkeit, den eigenen Kontotyp zu definieren. Sie sind wahrscheinlich auf die Apps gestoßen, die Google-Konten für die Autorisierung verwendet haben. Dies erspart Ihnen den Aufwand, ein neues Konto zu erstellen und die Anmeldeinformationen für den Benutzer zu speichern.Accounts
kann unabhängig über Einstellungen → Konten hinzugefügt werdenAccounts
. Beispielsweise kann der Client auf seinem Android-Gerät und PC gleichzeitig auf geschütztes Material zugreifen, ohne dass wiederholte Anmeldungen erforderlich sind.Accounts
Funktion in Android die Trennung der beiden an einem Geschäft beteiligten Parteien, die vomAccounts
sogenannten Authentifikator und Ressourcenbesitzer abhängig sind , ohne die Anmeldeinformationen des Clients (Benutzers) zu beeinträchtigen. Die Begriffe mögen ziemlich vage erscheinen, aber geben Sie nicht auf, bis Sie den folgenden Absatz gelesen haben… 😉Lassen Sie mich letzteres anhand eines Beispiels für eine Video-Streaming-App näher erläutern. Unternehmen A ist Inhaber eines Video-Streaming-Geschäfts im Vertrag mit Unternehmen B, um seinen bestimmten Mitgliedern Premium-Streaming-Dienste anzubieten. Unternehmen B verwendet eine Benutzername- und Kennwortmethode zur Erkennung seines Benutzers. Damit Unternehmen A die Premium-Mitglieder von B erkennt, besteht eine Möglichkeit darin, die Liste von B zu erhalten und einen ähnlichen Mechanismus zum Abgleichen von Benutzername und Passwort zu verwenden. Auf diese Weise sind der Authentifikator und der Ressourcenbesitzer identisch (Firma A). Abgesehen von der Verpflichtung der Benutzer, sich ein zweites Passwort zu merken, ist es sehr wahrscheinlich, dass sie dasselbe Passwort wie das Profil ihres Unternehmens B für die Nutzung der Dienste von A festlegen. Dies ist offensichtlich nicht günstig.
Um die oben genannten Mängel zu beheben, wurde OAuth eingeführt. Als offener Standard für die Autorisierung fordert OAuth im obigen Beispiel, dass die Autorisierung von Unternehmen B (Authentifikator) durchgeführt wird, indem ein Token namens Access Token für die berechtigten Benutzer (Dritte) ausgestellt und dann Unternehmen A (Ressourcenbesitzer) bereitgestellt wird das Zeichen. Kein Token bedeutet also keine Berechtigung.
Ich habe mehr dazu und mehr
AccountManager
auf meiner Website hier näher ausgeführt .quelle