Saya telah melihat AccountManager di Android SDK dan digunakan untuk menyimpan informasi akun. Dengan demikian, saya tidak dapat menemukan diskusi umum tentang apa yang dimaksudkan untuk itu. Adakah yang tahu tentang diskusi yang bermanfaat tentang apa maksud di balik AccountManager dan apa yang Anda beli? Adakah pendapat tentang jenis Akun apa yang cocok untuk ini? Apakah ini tempat Anda meletakkan informasi akun pengguna Anda untuk layanan web umum?
android
accountmanager
Phil
sumber
sumber
Jawaban:
Pertanyaan ini agak lama, tapi saya pikir ini masih menarik.
AccountManager
,SyncAdapter
danContentProvider
pergi bersama.SyncAdapter
tanpaAccount
dalamAccountManager
.SyncAdapter
tanpa aContentProvider
.Tapi kamu bisa:
ContentProvider
tanpa yang lain.AccountManager
tanpa yang lain (tapi Anda tidak bisa menggunakanAccountManager
tanpaSyncAdapter
sebelum Android 2.2 / Froyo API 8)Dengan
AccountManager
/SyncAdapter
/ContentProvider
:AccountManager
memberi pengguna titik pusat (Pengaturan> Akun) untuk menentukan kredensial merekaSyncAdapter
. Ini bisa baik untuk mengoptimalkan baterai (misalnya, sinkronisasi tidak dilakukan ketika jaringan sedang down)ContentProvider
adalah cara yang mudah untuk berbagi data di seluruh aplikasi Catatan: ada metode komunikasi inter-proses lainnya di Android .BantuanContentProvider
menjadwalkan akses basis data di utas latar belakangAsyncQueryHanlder
untuk kueriContentProvider
dalam utas latar belakang, mencegah kesalahan Aplikasi Tidak Responsif (ANR) sementara tidak mengharuskan Anda untuk secara eksplisit menangani threading.ContentProvider
terkaitContentResolver
dengan pengamat: ini berarti mudah untuk memberi tahu pandangan ketika konten diubahIntinya : kerangka kerja
AccountManager
/SyncAdapter
/ContentProvider
membantu jika Anda ingin menyinkronkan data dari sumber daya web. Implementasi palsu / bodoh diperlukan di API 7. JugaAsyncTaskLoader
Terakhir, jika Anda menggunakan a
SyncAdapter
, pertimbangkan dengan serius Firebase Cloud Messaging (sebelumnya Google Cloud Messaging) alias "push notification" untuk mendapatkan pembaruan yang lebih segar dan penggunaan baterai yang dioptimalkan.sumber
Kelas AccountManager terintegrasi dengan akun ponsel Anda. Jadi, jika Anda mengikuti semua panduan dan membuatnya berfungsi dengan benar, Anda akan melihat akun Anda di bawah menu "Pengaturan-> akun dan sinkronisasi". Dari sana Anda dapat menyesuaikan atau bahkan menghapusnya. Selain itu, manajer akun memiliki cache tiket otentikasi untuk akun Anda. Ini dapat digunakan juga jika Anda tidak berencana untuk menyinkronkan akun Anda (sejauh yang saya tahu).
Jika Anda tidak ingin akun Anda muncul di bawah menu itu Anda tidak boleh menggunakan AccountManager dan menyimpan data akun di tempat lain (mungkin dalam preferensi bersama) http://developer.android.com/guide/topics/data/data -storage.html
sumber
Dari http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/ :
sumber
Ini
AccountManager
bagus karena alasan berikut:Accounts
, karena Anda dapat dengan mudah mengelola itu di aplikasi Anda tanpa perlu hal yang tampak mewah iniAccounts
....Accounts
adalah untuk menghilangkan otorisasi tradisional dengan nama pengguna dan kata sandi setiap kali fitur resmi diminta oleh pengguna, karena otentikasi terjadi di latar belakang dan pengguna diminta kata sandi mereka hanya dalam kondisi tertentu, yang Saya akan membahasnya nanti.Accounts
fitur di android juga menghilangkan kebutuhan untuk mendefinisikan jenis akun sendiri. Anda mungkin menemukan aplikasi menggunakan akun Google untuk otorisasi, yang menghemat kerumitan membuat akun baru dan mengingat kredensial untuk pengguna.Accounts
dapat ditambahkan secara mandiri melalui Pengaturan → AkunAccounts
. Sebagai contoh, klien dapat mengakses materi yang dilindungi pada saat yang sama di perangkat android dan PC mereka tanpa perlu login berulang.Accounts
fitur di android adalah untuk memisahkan dua pihak yang terlibat dalam bisnis yang bergantung padaAccounts
, yang disebut autentikator dan pemilik sumber daya, tanpa mengorbankan kredensial klien (pengguna). Istilahnya mungkin tampak agak kabur, tetapi jangan menyerah sampai Anda membaca paragraf berikut ... 😉Izinkan saya menguraikan yang terakhir dengan contoh aplikasi streaming video. Perusahaan A adalah pemegang bisnis streaming video yang dikontrak oleh Perusahaan B untuk menyediakan layanan streaming premium bagi para anggotanya. Perusahaan B menggunakan metode nama pengguna dan kata sandi untuk mengenali penggunanya. Agar Perusahaan A mengenali anggota premium B, salah satu caranya adalah dengan mendapatkan daftar mereka dari B dan menggunakan mekanisme pencocokan nama pengguna / kata sandi yang serupa. Dengan cara ini, autentikator dan pemilik sumber daya adalah sama (Perusahaan A). Terlepas dari kewajiban pengguna untuk mengingat kata sandi kedua, sangat mungkin bahwa mereka menetapkan kata sandi yang sama dengan profil Perusahaan B mereka untuk menggunakan layanan dari A. Ini jelas tidak menguntungkan.
Untuk menghilangkan kekurangan di atas, OAuth diperkenalkan. Sebagai standar terbuka untuk otorisasi, dalam contoh di atas, OAuth menuntut agar otorisasi dilakukan oleh Perusahaan B (autentikator) dengan menerbitkan beberapa token yang disebut Token Akses untuk pengguna yang memenuhi syarat (pihak ketiga) dan kemudian menyediakan Perusahaan A (pemilik sumber daya) dengan token. Jadi tidak ada token berarti tidak ada kelayakan.
Saya telah menguraikan lebih lanjut tentang ini dan lebih banyak lagi di
AccountManager
situs web saya di sini.sumber