Skip to content

Most visited

Recently visited

navigation

Izin dan Data Pengguna

Izin melindungi informasi sensitif yang tersedia dari perangkat dan sebaiknya hanya digunakan ketika dibutuhkan akses ke informasi untuk menjalankan aplikasi Anda.

Dokumen ini memberikan ringkasan tingkat tinggi tentang cara kerja izin pada Android sehingga Anda bisa membuat keputusan yang lebih baik dan tepat mengenai izin yang Anda minta. Informasi dalam dokumen ini tidak menggunakan-kasus khusus dan menghindari pembahasan yang kompleks, tingkat-rendah tentang kode pokok.

Untuk saran khusus tentang cara mengelola izin, lihat Praktik Terbaik untuk Izin Aplikasi. Untuk praktik terbaik penggunaan identifier unik pada Android, lihat Praktik terbaik untuk Identifier Unik. Untuk detail mengenai cara menggunakan izin dalam kode Anda, lihat Bekerja dengan Izin Sistem.

Pengantar

Setiap aplikasi Android harus memiliki file manifes yang menampilkan informasi penting tentang aplikasi ke sistem Android. Sistem Android juga membutuhkan aplikasi untuk meminta izin ketika akan mengakses perangkat atau informasi pengguna yang rahasia, dan permintaan ini harus didokumentasikan dahulu sebagai bagian dari manifes aplikasi. Bagaimanapun, mengakses informasi sensitif bisa memengaruhi perilaku pengguna, jadi penting untuk memastikan bahwa Anda hanya membuat permintaan izin ketika informasi tersebut dibutuhkan untuk menjalankan aplikasi.

Grup Izin

Izin dalam Android dikelompokkan ke dalam permission groups yang mengatur, dan mengelompokkan izin yang terkait dengan kemampuan atau fitur perangkat. Dengan sistem ini, permintaan izin ditangani pada level grup dan grup izin tunggal bersesuaian dengan sejumlah deklarasi izin dalam manifes aplikasi; misalnya, grup SMS memasukkan deklarasi READ_SMS dan RECEIVE_SMS.

Pengaturan ini lebih sederhana dan informatif untuk pengguna; sekali aplikasi diizinkan untuk mengakses grup, aplikasi bisa menggunakan panggilan API dalam grup tersebut, dan pengguna dengan pembaruan otomatis yang diaktifkan tidak akan ditanya izin tambahan karena mereka sudah diberikan akses ke grup. Mengelompokkan izin dengan cara ini memungkinkan pengguna membuat pilihan yang lebih tepat dan benar, tanpa harus dibingungkan dengan permintaan izin teknis dan kompleks.

Ini juga berarti bahwa ketika Anda meminta akses ke beberapa panggilan API atau melakukan kueri penyedia materi dengan izin, pengguna akan disajikan dengan permintaan untuk memberikan izin ke seluruh grup bukan hanya panggilan API tertentu. Misalnya, jika Anda meminta izin WRITE_CALL_LOG, pengguna akan diminta untuk memberikan akses ke grup PHONE (dalam API level 23 dan yang lebih tinggi), yang terdiri dari izin READ_PHONE_STATE, CALL_PHONE, READ_CALL_LOG, WRITE_CALL_LOG, ADD_VOICEMAIL, USE_SIP, dan PROCESS_OUTGOING_CALLS, dan seluruh metode yang terkait.

Satu konsekuensi dari mengelompokkan izin adalah panggilan API tunggal dalam aplikasi bisa memiliki efek berlipat dalam hal jumlah izin yang diminta oleh aplikasi.

  1. Panggilan API →
  2. Memicu permintaan akses Grup Izin tertentu →
  3. Permintaan yang berhasil akan memberikan akses ke seluruh izin dalam grup (jika pembaruan otomatis diaktifkan) →
  4. Setiap izin memberikan akses ke seluruh API di bawah izin tersebut.

Contoh lainnya, mari kita asumsikan bahwa aplikasi Anda menggunakan satu atau beberapa metode TelephonyManager, seperti:

TelephonyManager.getDeviceId()
TelephonyManager.getSubscriberId()
TelephonyManager.getSimSerialNumber()
TelephonyManager.getLine1Number()
TelephonyManager.getVoiceMailNumber()

Untuk menggunakan metode tersebut, izin READ_PHONE_STATE harus dideklarasikan dalam manifes aplikasi, dan grup izin terkait, PHONE, akan ditampilkan pada pengguna. Hal ini penting, karena berarti pengguna akan diminta untuk memberikan izin untuk grup terkait dan semua izin serta panggilan API yang berhubungan, bukan hanya untuk panggilan API tertentu yang Anda minta.

Untuk pemetaan lengkap antara izin dan grup izin yang berhubungan, lihat dokumentasi khusus-versi yang sesuai di bawah ini:

Permintaan Izin dan Unduhan Aplikasi

Saya saat ini menggunakan izin READ_PHONE_STATE pada Android untuk menghentikan sementara pemutar media ketika ada panggilan, dan untuk melanjutkan pemutaran ketika panggilan selesai. Izin tersebut tampak menakutkan bagi banyak orang...1

Penelitian menunjukkan bahwa antara aplikasi yang dinyatakan identik (misalnya, fungsionalitas, pengakuan merek), yang meminta lebih sedikit izin akan meningkatkan jumlah unduhan. Ada sumber yang tersedia secara umum yang menetapkan nilai ke aplikasi berdasarkan penggunaan izinnya dan memungkinkan pengguna untuk membandingkan aplikasi yang berkaitan berdasarkan nilai; nilai tersebut ada untuk banyak aplikasi Android yang tersedia saat ini dan pengguna memerhatikan peringkat yang berkaitan.

Satu penelitian2, ketika pengguna disajikan dua aplikasi tidak terkenal dengan rating yang sama dan memiliki fungsionalitas serupa namun dengan kumpulan permintaan izin yang berbeda, menunjukkan bahwa rata-rata pengguna 3 kali lebih besar kemungkinannya untuk memasang aplikasi dengan permintaan izin yang lebih sedikit. Dan penelitian yang serupa 3 menunjukkan bahwa, rata-rata pengguna, 1,7 kali lebih besar kemungkinannya untuk memilih aplikasi dengan permintaan izin yang lebih sedikit.

Yang terakhir, penggunaan izin tidak terbagi rata di seluruh aplikasi dalam kategori yang sama di aplikasi Play. Misalnya, 39,3% aplikasi game arkade pada Play Store tidak meminta izin yang ditampilkan ke pengguna, sedangkan hanya 1,5% game arkade yang meminta grup izin Phone (lihat Gambar 1).

Gambar 1. Distribusi grup izin yang digunakan pada seluruh kategori Arcade Games.

Pengguna yang membandingkan aplikasi Anda dengan aplikasi sejenis dapat mengindikasikan bahwa aplikasi tersebut membuat permintaan izin yang tidak biasa untuk kategori tersebut - dalam hal ini, aplikasi Arcade Games mengakses grup izin Phone. Akibatnya, mereka mungkin memasang aplikasi serupa dalam kategori tersebut yang menghindari permintaan itu.4

Penurunan Tren Permintaan Izin

Analisis terbaru aplikasi dari Play Store secara berkala mengindikasikan bahwa banyak developer memangkas izin setelah pertama kali meluncurkan aplikasi, menunjukkan bahwa mereka bekerja dengan lebih hati-hati mengenai grup izin yang mereka deklarasikan.

Gambar 2. Penggunaan izin yang populer oleh developer semakin menurun seiring dengan berjalannya waktu.

Grafik dalam Gambar 2 menggambarkan tren ini. Telah terjadi penurunan signifikan pada rata-rata persentase permintaan aplikasi developer pada setidaknya salah satu dari tiga izin paling populer di Play Store (READ_PHONE_STATE, ACCESS_FINE_LOCATION, dan ACCESS_COARSE_LOCATION). Hasil tersebut menunjukkan bahwa developer mengurangi permintaan izin pada aplikasi mereka sebagai respons terhadap perilaku pengguna.

Intinya adalah menyediakan fungsionalitas yang sama kepada pengguna dengan akses minimal ke informasi sensitif, berarti semakin banyak yang mengunduh aplikasi Anda. Untuk saran khusus tentang cara mencapai hal ini, lihat Praktik Terbaik untuk Izin Aplikasi.

Referensi

[1] Kutipan developer pada StackOverflow. (sumber)

[2] Using Personal Examples to Improve Risk Communication for Security and Privacy Decisions, oleh M. Harbach, M. Hettig, S. Weber, dan M. Smith. Dalam Laporan Konferensi ACM CHI 2014.

[3] Modeling Users’ Mobile App Privacy Preferences: Restoring Usability in a Sea of Permission Settings, oleh J. Lin B. Liu, N. Sadeh dan J. Hong. Dalam Laporan Simposium SOUPS 2014.

[4] Teens and Mobile Apps Privacy. (sumber)

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Ikuti Google Developers di WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)