Semua orang senang jika Anda mengingat nama mereka. Salah satu hal paling sederhana dan efektif yang dapat Anda lakukan untuk membuat aplikasi Anda lebih disukai adalah dengan mengingat siapa pengguna Anda—terutama saat pengguna mengupgrade ke perangkat baru atau mulai membawa tablet dan ponsel. Namun, bagaimana cara mengetahui siapa pengguna Anda? Dan bagaimana Anda mengenali mereka di perangkat baru?
Untuk banyak aplikasi, jawabannya adalah AccountManager
API. Dengan
izin pengguna, Anda dapat menggunakan Account Manager untuk mengambil nama akun
yang telah disimpan pengguna di perangkatnya.
Integrasi dengan akun pengguna memungkinkan Anda melakukan berbagai hal, seperti:
- Isi otomatis formulir dengan alamat email pengguna.
- Mengambil ID yang terkait dengan pengguna, bukan perangkat.
Tentukan apakah AccountManager cocok untuk Anda
Biasanya aplikasi mencoba mengingat pengguna melalui salah satu dari tiga teknik berikut:
- Minta pengguna memasukkan nama pengguna.
- Mengambil ID perangkat unik untuk mengingat perangkat.
- Ambil akun bawaan dari
AccountManager
.
Opsi (1) bermasalah. Pertama, meminta pengguna untuk memasukkan sesuatu sebelum menggunakan aplikasi secara otomatis akan membuat aplikasi Anda kurang menarik. Kedua, tidak ada jaminan bahwa nama pengguna yang mereka pilih itu unik.
Opsi (2) tidak terlalu memberatkan pengguna, tetapi sulit dilakukan. Yang lebih penting lagi, ini hanya memungkinkan Anda mengingat pengguna di satu perangkat. Bayangkan frustrasi seseorang yang mengupgrade ke perangkat baru yang berkilau, lalu mendapati bahwa aplikasi Anda tidak lagi mengingatnya.
Opsi (3) adalah teknik yang disukai. Account Manager memungkinkan Anda mendapatkan informasi tentang akun yang disimpan di perangkat pengguna. Dengan Account Manager, Anda dapat mengingat pengguna, berapa pun banyaknya perangkat yang dimiliki pengguna, dengan hanya menambahkan beberapa ketukan tambahan ke UI.
Menentukan jenis akun yang akan digunakan
Perangkat Android dapat menyimpan beberapa akun dari berbagai penyedia.
Saat membuat kueri nama akun ke AccountManager
, Anda dapat memilih untuk memfilter
menurut
jenis akun. Jenis akun adalah string yang secara unik mengidentifikasi entity
yang menerbitkan akun. Misalnya, Akun Google memiliki jenis com.google
, sedangkan Twitter menggunakan com.twitter.android.auth.login
.
Meminta izin GET_ACCOUNTS
Untuk mendapatkan daftar akun di perangkat, aplikasi Anda memerlukan izin
GET_ACCOUNTS
. Tambahkan tag <uses-permission>
di file manifes untuk meminta
izin ini:
<manifest ... > <uses-permission android:name="android.permission.GET_ACCOUNTS" /> ... </manifest>
Memberi tahu pengguna dan mendapatkan persetujuan
Anda bisa mendapatkan daftar akun pengguna dengan memanggil
getAccounts()
atau
getAccountsByType()
.
Namun perlu diingat bahwa API menampilkan data pengguna yang bersifat pribadi dan sensitif, dan setiap kali
aplikasi Anda mengakses, mengumpulkan, menggunakan, atau membagikan data yang bersifat pribadi dan sensitif,
Anda harus mengungkapkan fakta tersebut dengan jelas kepada pengguna. Untuk aplikasi yang dipublikasikan di Google Play,
kebijakan yang melindungi data pengguna mengharuskan Anda melakukan hal berikut:
- Beri tahu pengguna cara aplikasi Anda mengakses, mengumpulkan, menggunakan, atau membagikan data yang bersifat pribadi dan sensitif. Pelajari lebih lanjut pengungkapan dan izin yang dapat diterima.
- Berikan kebijakan privasi yang menjelaskan penggunaan Anda atas data ini di dalam dan di luar perangkat.
Untuk mempelajari lebih lanjut, buka Kebijakan Google Play tentang data pengguna.
Meminta daftar akun ke AccountManager
Setelah memutuskan jenis akun yang Anda minati, Anda perlu membuat kueri untuk akun jenis tersebut. Dapatkan instance AccountManager
dengan memanggil
AccountManager.get()
.
Lalu, gunakan instance tersebut untuk memanggil getAccountsByType()
.
Kotlin
val am: AccountManager = AccountManager.get(this) // "this" references the current Context val accounts: Array<out Account> = am.getAccountsByType("com.google")
Java
AccountManager am = AccountManager.get(this); // "this" references the current Context Account[] accounts = am.getAccountsByType("com.google");
Tindakan ini akan menampilkan array objek Account
. Jika ada lebih dari satu Account
dalam
array, tampilkan dialog yang meminta pengguna memilih salah satunya.
Menggunakan objek akun untuk mempersonalisasi aplikasi
Objek Account
berisi nama akun, yang untuk akun Google berupa alamat email.
Anda dapat menggunakan informasi ini dengan
beberapa cara, termasuk:
- Sebagai saran dalam formulir, sehingga pengguna tidak perlu memasukkan informasi akun sendiri.
- Sebagai kunci ke dalam database online Anda sendiri yang berisi informasi penggunaan dan personalisasi.
Menentukan apakah nama akun sudah cukup
Nama akun adalah cara yang baik untuk mengingat pengguna, tetapi objek Account
itu sendiri tidak melindungi data Anda, atau memberi Anda akses ke apa pun selain
nama akun pengguna. Jika aplikasi Anda
perlu membiarkan pengguna online untuk mengakses data pribadi, Anda memerlukan
sesuatu yang lebih kuat: autentikasi.
Pelajari cara melakukan autentikasi ke layanan online yang ada
dan cara menulis pengautentikasi kustom sehingga
Anda dapat menginstal jenis akun Anda sendiri.