Izin di Android

Izin aplikasi membantu mendukung privasi pengguna dengan melindungi akses ke hal-hal berikut:

  • Data yang dibatasi, seperti status sistem dan informasi kontak pengguna.
  • Tindakan yang dibatasi, seperti menghubungkan ke perangkat yang disambungkan dan merekam audio.

Halaman ini memberikan ringkasan tentang cara kerja izin Android, seperti alur kerja tingkat tinggi untuk menggunakan izin, deskripsi berbagai jenis izin, dan beberapa praktik terbaik untuk menggunakan izin di aplikasi Anda. Halaman lain menjelaskan cara mengevaluasi apakah aplikasi Anda perlu meminta izin, mendeklarasikan izin, meminta izin runtime, dan membatasi interaksi aplikasi lain dengan komponen aplikasi Anda.

Untuk melihat daftar lengkap izin aplikasi Android, kunjungi halaman referensi API izin.

Untuk melihat beberapa aplikasi contoh yang mendemonstrasikan alur kerja izin, kunjungi repositori contoh izin Android di GitHub.

Alur kerja untuk menggunakan izin

Jika aplikasi Anda menawarkan fungsi yang mungkin memerlukan akses ke data yang dibatasi atau tindakan yang dibatasi, tentukan apakah Anda bisa mendapatkan informasi atau melakukan tindakan tersebut tanpa perlu mendeklarasikan izin. Anda dapat memenuhi banyak kasus penggunaan di aplikasi, seperti mengambil foto, menjeda pemutaran media, dan menampilkan iklan yang relevan, tanpa perlu mendeklarasikan izin apa pun.

Jika Anda memutuskan bahwa aplikasi harus mengakses data yang dibatasi atau melakukan tindakan yang dibatasi untuk memenuhi kasus penggunaan, deklarasikan izin yang sesuai. Beberapa izin, yang dikenal sebagai izin waktu penginstalan, diberikan secara otomatis saat aplikasi diinstal. Izin lainnya, yang dikenal sebagai izin runtime, mengharuskan aplikasi Anda untuk meminta izin saat runtime.

Gambar 1 mengilustrasikan alur kerja untuk menggunakan izin aplikasi:

Gambar 1. Diagram yang menunjukkan alur kerja tingkat tinggi untuk menggunakan izin di Android.

Jenis izin

Android mengategorikan izin ke dalam berbagai jenis, seperti izin waktu penginstalan, izin runtime, dan izin khusus. Setiap jenis izin menunjukkan cakupan data yang dibatasi yang dapat diakses oleh aplikasi, dan cakupan tindakan yang dibatasi yang dapat dilakukan oleh aplikasi, saat sistem memberikan izin ke aplikasi.

Izin waktu penginstalan

Gambar sebelah kiri menampilkan daftar izin waktu penginstalan aplikasi. Gambar
    kanan menampilkan dialog pop up yang berisi 2 opsi: izinkan dan tolak.
Gambar 2. Daftar izin saat penginstalan aplikasi, yang muncul di app store.

Izin saat penginstalan memberi aplikasi Anda akses terbatas ke data yang dibatasi, dan mengizinkan aplikasi Anda melakukan tindakan yang dibatasi yang berdampak minimal pada sistem atau aplikasi lainnya. Saat Anda mendeklarasikan izin waktu penginstalan di aplikasi, sistem akan otomatis memberikan izin ke aplikasi Anda saat pengguna menginstalnya. App store menampilkan pemberitahuan izin waktu penginstalan kepada pengguna saat mereka melihat halaman detail aplikasi, seperti yang ditunjukkan pada Gambar 2.

Android menyertakan beberapa subjenis izin waktu penginstalan, termasuk izin normal dan izin tanda tangan.

Izin normal

Izin ini memungkinkan akses ke data dan tindakan yang melampaui sandbox aplikasi Anda. Namun, risiko yang muncul akibat data dan tindakan tersebut terhadap privasi pengguna dan pengoperasian aplikasi lainnya sangat minim.

Sistem menetapkan tingkat perlindungan "normal" ke izin normal, seperti yang ditunjukkan pada halaman referensi API izin.

Izin tanda tangan

Jika aplikasi mendeklarasikan izin tanda tangan yang telah ditentukan oleh aplikasi lain, dan jika kedua aplikasi ditandatangani oleh sertifikat yang sama, sistem akan memberikan izin ke aplikasi pertama pada waktu penginstalan. Jika tidak, aplikasi pertama tersebut tidak dapat diberi izin.

Sistem menetapkan tingkat perlindungan "tanda tangan" ke izin tanda tangan, seperti yang ditampilkan di halaman referensi API izin.

Izin runtime

Dialog pop-up yang berisi 2 opsi: izinkan dan tolak.
Gambar 3. Permintaan izin sistem yang muncul saat aplikasi meminta izin runtime.

Izin runtime, yang juga dikenal sebagai izin berbahaya, memberi aplikasi akses tambahan ke data yang dibatasi, dan memungkinkan aplikasi melakukan tindakan yang dibatasi yang berdampak besar pada sistem dan aplikasi lainnya. Oleh karena itu, Anda perlu meminta izin runtime di aplikasi sebelum dapat mengakses data yang dibatasi atau melakukan tindakan yang dibatasi. Saat aplikasi meminta izin runtime, sistem akan menampilkan permintaan izin runtime seperti yang ditunjukkan pada Gambar 3.

Ada banyak izin runtime yang mengakses data pengguna pribadi, yakni jenis khusus data yang dibatasi yang mencakup informasi berpotensi sensitif. Contoh data pengguna pribadi mencakup informasi lokasi dan kontak.

Mikrofon dan kamera menyediakan akses ke informasi yang sangat sensitif. Oleh karena itu, sistem ini membantu Anda menjelaskan mengapa aplikasi Anda mengakses informasi ini.

Sistem menetapkan tingkat perlindungan "berbahaya" ke izin runtime, seperti yang ditampilkan di halaman referensi API izin.

Izin khusus

Izin khusus berkaitan dengan operasi aplikasi tertentu. Hanya platform dan OEM yang dapat menentukan izin khusus. Selain itu, platform dan OEM biasanya menentukan izin khusus saat mereka ingin melindungi akses ke tindakan yang berpengaruh besar, seperti menutup aplikasi lain.

Halaman Akses aplikasi khusus di setelan sistem berisi sekumpulan operasi yang dapat diubah oleh pengguna. Banyak dari operasi ini diterapkan sebagai izin khusus.

Setiap izin khusus memiliki detail penerapannya sendiri. Petunjuk untuk menggunakan setiap izin khusus dapat dilihat di halaman referensi API izin. Sistem menetapkan tingkat perlindungan "appop" ke izin khusus.

Praktik terbaik

Izin aplikasi dibuat berdasarkan fitur keamanan sistem dan membantu Android mendukung sasaran berikut terkait privasi pengguna:

  • Kontrol: Pengguna memiliki kontrol atas data yang mereka bagikan kepada aplikasi.
  • Transparansi: Pengguna memahami data apa yang digunakan oleh aplikasi, serta alasan aplikasi mengakses data ini.
  • Minimalisasi data: Aplikasi mengakses dan hanya menggunakan data yang diperlukan untuk tugas atau tindakan tertentu yang diminta oleh pengguna.

Bagian ini menampilkan sejumlah praktik terbaik utama untuk menggunakan izin secara efektif di aplikasi. Untuk mengetahui lebih lanjut cara menggunakan izin di Android, kunjungi halaman praktik terbaik izin aplikasi.

Meminta jumlah izin minimal

Saat pengguna meminta tindakan tertentu di aplikasi, aplikasi seharusnya hanya meminta izin yang diperlukan untuk menyelesaikan tindakan tersebut. Bergantung pada cara Anda menggunakan izin, mungkin ada cara alternatif untuk memenuhi kasus penggunaan aplikasi tanpa mengandalkan akses ke informasi sensitif.

Kaitkan izin runtime dengan tindakan tertentu

Minta izin selambat mungkin ke dalam alur kasus penggunaan aplikasi. Misalnya, jika aplikasi Anda mengizinkan pengguna mengirim pesan audio kepada orang lain, tunggu hingga pengguna membuka layar pesan dan menekan tombol Kirim pesan audio. Setelah pengguna menekan tombol tersebut, aplikasi kemudian dapat meminta akses ke mikrofon.

Pertimbangkan dependensi aplikasi Anda

Bila Anda menyertakan library, aplikasi juga akan mewarisi persyaratan izinnya. Perhatikan izin yang diperlukan oleh setiap dependensi, dan juga tujuan penggunaan izin tersebut.

Bersikaplah transparan

Saat membuat permintaan izin, jelaskan apa yang Anda akses dan mengapa Anda perlu mengaksesnya sehingga pengguna bisa membuat keputusan yang tepat.

Nyatakan akses sistem secara eksplisit

Saat Anda mengakses data atau hardware yang sensitif, seperti kamera atau mikrofon, berikan indikasi berkelanjutan pada aplikasi Anda jika sistem belum menyediakan indikator ini. Pengingat ini membantu pengguna memahami secara persis kapan aplikasi Anda mengakses data yang dibatasi atau melakukan tindakan yang dibatasi.

Izin dalam komponen sistem

Izin tidak hanya untuk meminta fungsi sistem. Komponen sistem aplikasi dapat membatasi aplikasi lain yang dapat berinteraksi dengan aplikasi tersebut, seperti yang dijelaskan di halaman cara membatasi interaksi dengan aplikasi lain.

Referensi lainnya

Untuk mempelajari izin aplikasi di Android lebih lanjut, lihat referensi tambahan berikut:

Contoh