Izin yang terkait dengan lokasi, mikrofon, dan kamera memberikan aplikasi Anda akses ke informasi sensitif secara khusus tentang pengguna. Platform ini termasuk: beberapa mekanisme, yang dijelaskan di halaman ini, untuk membantu pengguna tetap terinformasi dan mengontrol aplikasi mana yang dapat mengakses lokasi, mikrofon, dan kamera.
Fitur sistem yang menjaga privasi ini seharusnya tidak memengaruhi cara aplikasi Anda menangani izin yang terkait dengan lokasi, mikrofon, dan kamera, selama Anda mengikuti praktik terbaik privasi.
Secara khusus, pastikan Anda melakukan hal berikut dalam aplikasi:
- Tunggu untuk mengakses kamera perangkat hingga pengguna memberikan izin
CAMERA
ke aplikasi Anda. - Tunggu untuk mengakses mikrofon perangkat hingga pengguna memberikan
izin
RECORD_AUDIO
ke aplikasi Anda. - Tunggu hingga pengguna berinteraksi dengan fitur di aplikasi Anda yang memerlukan
lokasi sebelum Anda meminta
izin
ACCESS_COARSE_LOCATION
atau izinACCESS_FINE_LOCATION
, seperti yang dijelaskan dalam panduan tentang cara meminta izin akses lokasi. - Tunggu hingga pengguna memberikan aplikasi izin
ACCESS_COARSE_LOCATION
atau izinACCESS_FINE_LOCATION
sebelum Anda meminta izinACCESS_BACKGROUND_LOCATION
.
Dasbor Privasi
Pada perangkat didukung yang menjalankan Android 12 atau yang lebih baru, layar Dasbor Privasi muncul di setelan sistem. Di layar ini, pengguna dapat mengakses layar terpisah yang muncul saat aplikasi mengakses informasi lokasi, kamera, dan mikrofon. Setiap layar menampilkan linimasa saat aplikasi yang berbeda telah mengakses jenis data tertentu. Gambar 1 menunjukkan linimasa akses data untuk informasi lokasi.
Tampilkan alasan untuk akses data
Aplikasi Anda dapat memberikan alasan bagi pengguna, untuk membantu mereka memahami mengapa aplikasi Anda mengakses informasi lokasi, kamera, atau mikrofon. Alasan ini dapat muncul di layar Dasbor Privasi yang baru, layar izin aplikasi, atau keduanya.
Untuk menjelaskan alasan aplikasi Anda mengakses informasi lokasi, kamera, dan mikrofon, lakukan langkah-langkah berikut:
Tambahkan aktivitas yang ketika dimulai, akan memberikan beberapa alasan mengapa aplikasi Anda melakukan jenis tindakan akses data tertentu. Dalam aktivitas ini, tetapkan atribut
android:permission
keSTART_VIEW_PERMISSION_USAGE
.Jika aplikasi Anda menargetkan Android 12 atau yang lebih tinggi, secara eksplisit Anda harus menentukan nilai untuk atribut
android:exported
.Tambahkan filter intent berikut ke aktivitas yang baru ditambahkan:
<!-- android:exported required if you target Android 12. --> <activity android:name=".DataAccessRationaleActivity" android:permission="android.permission.START_VIEW_PERMISSION_USAGE" android:exported="true"> <!-- VIEW_PERMISSION_USAGE shows a selectable information icon on your app permission's page in system settings. VIEW_PERMISSION_USAGE_FOR_PERIOD shows a selectable information icon on the Privacy Dashboard screen. --> <intent-filter> <action android:name="android.intent.action.VIEW_PERMISSION_USAGE" /> <action android:name="android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD" /> <category android:name="android.intent.category.DEFAULT" /> ... </intent-filter> </activity>
Tentukan apa yang harus ditampilkan oleh aktivitas rasional akses data Anda. Misalnya, Anda dapat menampilkan situs web aplikasi atau artikel pusat bantuan. Untuk memberikan penjelasan yang lebih terperinci tentang jenis data yang diakses oleh aplikasi Anda, dan juga saat akses terjadi, tangani sistem tambahan termasuk saat sistem tersebut mengaktifkan maksud penggunaan izin:
- Jika sistem memanggil
ACTION_VIEW_PERMISSION_USAGE
, aplikasi dapat mengambil nilai untukEXTRA_PERMISSION_GROUP_NAME
. - Jika sistem memanggil
ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD
, aplikasi dapat mengambil nilai untukEXTRA_PERMISSION_GROUP_NAME
,EXTRA_ATTRIBUTION_TAGS
,EXTRA_START_TIME
, danEXTRA_END_TIME
.
- Jika sistem memanggil
Bergantung pada filter intent yang akan Anda tambahkan, pengguna akan melihat ikon informasi di samping nama aplikasi pada layar tertentu:
- Jika Anda menambahkan filter intent yang berisi tindakan
VIEW_PERMISSION_USAGE
, pengguna akan melihat ikon di halaman izin aplikasi di setelan sistem. Anda dapat menerapkan tindakan ini ke semua izin runtime. - Jika Anda menambahkan filter intent yang berisi
tindakan
VIEW_PERMISSION_USAGE_FOR_PERIOD
, pengguna akan melihat ikon di samping nama aplikasi setiap kali aplikasi muncul di layar Dasbor Privasi.
Saat pengguna memilih ikon tersebut, aktivitas alasan aplikasi Anda akan dimulai.
Indikator
Pada perangkat yang menjalankan Android 12 atau yang lebih baru, saat aplikasi mengakses mikrofon atau kamera, ikon akan muncul di status bar. Jika aplikasi berada dalam mode imersif, ikon akan muncul di pojok kanan atas layar. Pengguna dapat membuka Setelan Cepat dan memilih ikon untuk melihat aplikasi yang sedang menggunakan mikrofon atau kamera. Gambar 2 menunjukkan contoh screenshot yang berisi ikon.
Identifikasi lokasi layar indikator
Jika aplikasi Anda mendukung mode imersif atau UI layar penuh, indikatornya mungkin
tumpang tindih sebentar dengan UI aplikasi Anda. Untuk membantu menyesuaikan UI Anda dengan indikator ini,
sistem memperkenalkan
metode getPrivacyIndicatorBounds()
,
yang ditunjukkan oleh cuplikan kode berikut. Dengan menggunakan API ini, Anda dapat
mengidentifikasi batas di mana indikator mungkin muncul. Anda kemudian dapat memutuskan untuk
mengatur UI layar Anda secara berbeda.
Kotlin
view.setOnApplyWindowInsetsListener { view, windowInsets -> val indicatorBounds = windowInsets.getPrivacyIndicatorBounds() // change your UI to avoid overlapping windowInsets }
Toggle
Pada perangkat yang didukung yang menjalankan Android 12 atau lebih baru, pengguna dapat mengaktifkan dan menonaktifkan kamera dan akses mikrofon untuk semua aplikasi di perangkat dengan menekan satu opsi tombol. Pengguna dapat mengakses opsi yang dapat dialihkan dari Setelan Cepat, seperti yang ditunjukkan dalam gambar 3 atau dari layar Privasi di setelan sistem.
Tombol kamera dan mikrofon memengaruhi semua aplikasi di perangkat:
- Saat pengguna mematikan akses kamera, aplikasi Anda menerima feed kamera kosong.
Saat pengguna mematikan akses mikrofon, aplikasi Anda menerima audio senyap. Selain itu, sensor gerakan memiliki batas kecepatan, terlepas dari apakah Anda mendeklarasikan izin
HIGH_SAMPLING_RATE_SENSORS
atau tidak.
Saat pengguna menonaktifkan akses ke kamera atau mikrofon, lalu meluncurkan aplikasi yang memerlukan akses ke informasi kamera atau mikrofon, sistem akan mengingatkan pengguna bahwa tombol di seluruh perangkat dinonaktifkan.
Periksa dukungan perangkat
Untuk memeriksa apakah perangkat mendukung tombol mikrofon dan kamera, tambahkan logika yang muncul di cuplikan kode berikut:
Kotlin
val sensorPrivacyManager = applicationContext .getSystemService(SensorPrivacyManager::class.java) as SensorPrivacyManager val supportsMicrophoneToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.MICROPHONE) val supportsCameraToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.CAMERA)
Java
SensorPrivacyManager sensorPrivacyManager = getApplicationContext() .getSystemService(SensorPrivacyManager.class); boolean supportsMicrophoneToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.MICROPHONE); boolean supportsCameraToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.CAMERA);