Mengingat pengguna Anda

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:

  1. Minta pengguna memasukkan nama pengguna.
  2. Mengambil ID perangkat unik untuk mengingat perangkat.
  3. 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:

  1. 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.
  2. 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.