Menjelaskan akses ke informasi yang lebih sensitif

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_AUDIOke aplikasi Anda.
  • Tunggu hingga pengguna berinteraksi dengan fitur di aplikasi Anda yang memerlukan lokasi sebelum Anda meminta izin ACCESS_COARSE_LOCATION atau izin ACCESS_FINE_LOCATION, seperti yang dijelaskan dalam panduan tentang cara meminta izin akses lokasi.
  • Tunggu hingga pengguna memberikan aplikasi izin ACCESS_COARSE_LOCATION atau izin ACCESS_FINE_LOCATION sebelum Anda meminta izin ACCESS_BACKGROUND_LOCATION.

Dasbor Privasi

Linimasa vertikal menampilkan berbagai aplikasi yang telah mengakses informasi lokasi, dan waktu terjadinya akses tersebut
Gambar 1. Layar penggunaan lokasi, bagian dari 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:

  1. 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 ke START_VIEW_PERMISSION_USAGE.

    Jika aplikasi Anda menargetkan Android 12 atau yang lebih tinggi, secara eksplisit Anda harus menentukan nilai untuk atribut android:exported.

  2. 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>
  3. 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:

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.

Kotak persegi panjang di pojok kanan atas, yang
         mencakup ikon kamera dan ikon mikrofon
Gambar 2. Indikator mikrofon dan kamera yang menampilkan akses data terbaru.

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

Kotak setelan cepat diberi label &#39;Akses kamera&#39; dan
         &#39;Akses mikrofon&#39;
Gambar 3. Tombol mikrofon dan kamera di Setelan Cepat.

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);