Widziałem AccountManagera w Android SDK i służy on do przechowywania informacji o koncie. Dlatego nie mogę znaleźć żadnej ogólnej dyskusji na temat tego, do czego jest przeznaczony. Czy ktoś zna jakieś pomocne dyskusje na temat intencji stojącej za AccountManager i tego, co kupuje? Jakieś opinie na temat tego, dla jakiego typu kont jest to odpowiednie? Czy w tym miejscu umieściłbyś informacje o koncie użytkownika dla ogólnej usługi internetowej?
android
accountmanager
Phil
źródło
źródło
Odpowiedzi:
To pytanie jest trochę stare, ale myślę, że nadal jest interesujące.
AccountManager
,SyncAdapter
IContentProvider
iść w parze.SyncAdapter
bezAccount
wAccountManager
.SyncAdapter
bezContentProvider
.Ale ty możesz:
ContentProvider
bez innych.AccountManager
bez innych (ale nie możesz używaćAccountManager
bezSyncAdapter
wcześniejszego Android 2.2 / Froyo API 8)Z
AccountManager
/SyncAdapter
/ContentProvider
:AccountManager
daje użytkownikom centralny punkt (Ustawienia> Konta) do definiowania ich poświadczeńSyncAdapter
. Może to być dobre rozwiązanie do optymalizacji baterii (na przykład synchronizacja nie jest wykonywana, gdy sieć jest wyłączona)ContentProvider
to wygodny sposób udostępniania danych między aplikacjami Uwaga: istnieją inne metody komunikacji między procesami w systemie Android .ContentProvider
Przeważnie dostępu do bazy danych w tle wątkuAsyncQueryHanlder
pomaga kwerendyContentProvider
w wątku tła, zapobiegając aplikacja nie czuły (ANR) błędów jednocześnie nie wymagając, aby jawnie obsłużyć wątków.ContentProvider
wiąże sięContentResolver
z obserwatorem: oznacza to, że łatwo jest powiadomić widok o zmianie treściKonkluzja : struktura
AccountManager
/SyncAdapter
/ContentProvider
pomaga, jeśli chcesz synchronizować dane z zasobów sieciowych. W API 7. wymagane są fałszywe / głupie implementacjeAsyncTaskLoader
Wreszcie, jeśli używasz
SyncAdapter
, poważnie rozważ Firebase Cloud Messaging (wcześniej Google Cloud Messaging), czyli „powiadomienia push”, aby mieć bardziej aktualne aktualizacje i zoptymalizować zużycie baterii.źródło
Klasa AccountManager jest zintegrowana z kontami telefonicznymi. Jeśli więc zastosujesz się do wszystkich wskazówek i sprawisz, że będzie działać poprawnie, zobaczysz swoje konta w menu „Ustawienia-> Konta i synchronizacja”. Stamtąd możesz je dostosować, a nawet usunąć. Ponadto accountManager ma pamięć podręczną biletów uwierzytelniających dla twoich kont. Można tego użyć również, jeśli nie planujesz synchronizować swojego konta (o ile wiem).
Jeśli nie chcesz, aby Twoje konta pojawiały się w tym menu, nie powinieneś używać Menedżera kont i przechowywać dane kont w innym miejscu (może w udostępnianych preferencjach) http://developer.android.com/guide/topics/data/data -storage.html
źródło
Od http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/ :
źródło
Jest
AccountManager
to dobre z następujących powodów:Accounts
warto korzystać z aplikacji, ponieważ możesz łatwo zarządzać tym w swojej aplikacji bez potrzeby korzystania z tej fantazyjnejAccounts
rzeczy….Accounts
jest pozbycie się tradycyjnej autoryzacji za pomocą nazwy użytkownika i hasła za każdym razem, gdy użytkownik zażąda autoryzowanej funkcji, ponieważ uwierzytelnianie odbywa się w tle, a użytkownik jest proszony o podanie hasła tylko w określonych warunkach, które Wrócę do tego później.Accounts
funkcji w Androidzie eliminuje również potrzebę definiowania własnego typu konta. Prawdopodobnie spotkałeś się z aplikacjami używającymi kont Google do autoryzacji, co oszczędza kłopotów z tworzeniem nowego konta i zapamiętywaniem jego poświadczeń dla użytkownika.Accounts
można dodać niezależnie poprzez Ustawienia → KontaAccounts
. Na przykład klient może uzyskać dostęp do chronionych materiałów w tym samym czasie na swoim urządzeniu z Androidem i komputerze bez konieczności wielokrotnego logowania.Accounts
funkcji w systemie Android jest oddzielenie dwóch stron zaangażowanych w jakąkolwiek działalność zależnąAccounts
, tak zwanego wystawcy uwierzytelnienia i właściciela zasobów, bez narażania poświadczeń klienta (użytkownika). Określenia mogą wydawać się dość niejasne, ale nie poddawaj się, dopóki nie przeczytasz następnego akapitu… 😉Opowiem o tym ostatnim na przykładzie aplikacji do strumieniowego przesyłania wideo. Firma A jest właścicielem firmy zajmującej się strumieniową transmisją wideo na podstawie umowy z Firmą B o świadczenie jej określonym członkom usług przesyłania strumieniowego premium. Firma B stosuje metodę nazwy użytkownika i hasła do rozpoznawania swojego użytkownika. Aby firma A mogła rozpoznać członków premium należących do B, jednym ze sposobów byłoby pobranie ich listy od B i wykorzystanie podobnego mechanizmu dopasowywania nazwy użytkownika / hasła. W ten sposób osoba uwierzytelniająca i właściciel zasobu są takie same (firma A). Oprócz obowiązku zapamiętania drugiego hasła przez użytkowników, jest bardzo prawdopodobne, że ustawili to samo hasło, co profil firmy B do korzystania z usług firmy A. To oczywiście nie jest korzystne.
Aby złagodzić powyższe niedociągnięcia, wprowadzono OAuth. Jako otwarty standard autoryzacji, w powyższym przykładzie, OAuth wymaga, aby autoryzacja została przeprowadzona przez firmę B (podmiot uwierzytelniający) poprzez wystawienie tokenu zwanego tokenem dostępu dla uprawnionych użytkowników (strony trzeciej), a następnie przekazanie firmie A (właściciel zasobu) token. Więc brak tokena oznacza brak uprawnień.
Omówiłem więcej na ten temat i więcej
AccountManager
na mojej stronie internetowej tutaj.źródło