Indikator privasi

Izin runtime di Android 6 dan yang lebih baru memberi pengguna kontrol atas kapan mereka mengizinkan audio dari mikrofon perangkat atau video dari kamera perangkat direkam. Sebelum aplikasi dapat merekam, pengguna harus memberikan atau menolak izin melalui dialog yang ditampilkan sistem.

Android 12 memberikan transparansi kepada pengguna dengan menampilkan indikator saat aplikasi menggunakan sumber data pribadi melalui izin operasi aplikasi kamera dan mikrofon. App-ops mencatat akses ke API yang dilindungi izin runtime.

App-op melacak status aktivitas dan jumlah panggilan API individual, serta berinteraksi dengan indikator mikrofon dan kamera di Android 12 untuk menunjukkan kepada pengguna kapan aplikasi telah mengakses data audio dan kamera di perangkat mereka. Saat pengguna mengklik indikator mikrofon atau kamera, mereka akan melihat aplikasi mana yang telah mengakses data mereka. Fitur ini wajib ada untuk semua OEM.

Persyaratan visibilitas indikator

Berikut persyaratan untuk indikator mikrofon dan kamera di perangkat yang berjalan di Android 12 atau yang lebih tinggi:

  • Indikator harus muncul di status bar, dan mempertahankan prioritas visual tertinggi (misalnya, terletak di posisi paling kanan di sudut kanan atas).
  • Indikator harus ditempatkan secara konsisten di posisi yang sama, dan tidak boleh diblokir oleh aplikasi saat diluncurkan.
  • Kedua indikator harus berwarna hijau (atau variasi hijau).
  • Mengklik satu atau kedua indikator harus merender notifikasi kemudahan atribusi aplikasi yang melakukan hal berikut:
    • Menampilkan nama aplikasi yang menggunakan mikrofon dan (atau) kamera
    • Menampilkan nama aplikasi yang menggunakan mikrofon dan (atau) kamera dalam 15 detik terakhir
    • Mengarahkan pengguna ke halaman izin aplikasi di Setelan

Penggunaan dan fitur

Di Android 12, UI membedakan antara penggunaan yang sedang berjalan dan penggunaan terbaru. Penggunaan dianggap aktif jika ditandai oleh sistem sebagai sedang berjalan, atau berusia kurang dari 5 detik.

  • Ikon status bar ditampilkan setiap kali aplikasi memiliki akses mikrofon atau kamera yang sedang berlangsung dan sensitif bagi pengguna.
  • Pengguna dapat mengklik ikon ini dan melihat aplikasi mana yang mengakses mikrofon, kamera, atau keduanya.

Indikator penggunaan mikrofon dan kamera yang menunjukkan bahwa akses sedang aktif

Gambar 1. Indikator penggunaan mikrofon dan kamera yang menunjukkan akses aktif (pojok kanan atas)

Akses dianggap aktif selama indikator ditampilkan. Ikon ditampilkan terlebih dahulu, lalu bertransisi ke titik yang tetap ada hingga aplikasi ditutup atau dihentikan.

Saat pengguna membuka Setelan Cepat, lalu mengetuk indikator, dialog akan muncul yang menunjukkan apakah aplikasi menggunakan kamera, mikrofon, atau keduanya.

Indikator untuk akses aktif dan terbaru, serta apakah akses berasal dari kamera atau mikrofon

Gambar 2. Indikator akses aktif dan terbaru

Gambar di Gambar 2 menampilkan indikator akses aktif saat data telah diakses dalam 5 detik terakhir oleh aplikasi yang sedang berjalan.

Indikator akses terbaru menunjukkan bahwa data diakses oleh aplikasi selama 15 detik sebelumnya, tetapi aplikasi tersebut tidak aktif. Semua aplikasi aktif ditampilkan dalam dialog, tetapi hanya satu aplikasi yang ditampilkan sebagai sumber akses terbaru, meskipun lebih dari 1 aplikasi mengakses data dalam jangka waktu 15 detik sebelumnya. Tampilan akses tetap dibekukan hingga pengguna menutup dialog notifikasi.

Kirim dan aktifkan

Class PermissionManager menyediakan metode untuk mengisi dialog, yang berada di UI Sistem.

  • UI Sistem bereaksi terhadap peralihan konfigurasi perangkat: privacy/mic_camera_indicators_enabled.
  • Perubahan ini diperlukan karena ada dua kendaraan pengiriman terpisah, dalam urutan ini:
    1. Kirim.
    2. Aktifkan.
  • UI Sistem tidak boleh error jika metode di PermissionManager tidak dapat memberikan data yang diperlukan.

Alur proses

Fungsi Indikator Izin memiliki tiga bagian utama:

  • Aplikasi
  • Indikator (ditangani oleh SystemUI)
  • Cara untuk menentukan aplikasi mana yang menggunakan data

PermissionController menyediakan mekanisme untuk menentukan aplikasi mana yang menggunakan data. SystemUI memantau aplikasi yang menggunakan data pribadi. SystemUI menampilkan ikon di menu navigasi atas yang sesuai dengan izin yang digunakan. PermissionController menampilkan data tentang penggunaan saat pengguna mengklik ikon.

Alur proses untuk fungsi Indikator Izin

Gambar 3. Alur transisi komponen sistem dan (UI)

Transisi bernomor dalam Gambar 3 dijelaskan di bawah:

1- Aplikasi meminta data pribadi dari sistem.

2- Sistem memeriksa izin. Jika izin diizinkan, sistem akan memberi tahu penyedia data, dan mencatat penggunaan di app-ops

3- Penyedia data memberikan data ke aplikasi.

4-5 Pengguna mengklik ikon. UI Sistem meminta data dari PermissionManager dan menampilkan dialog kepada pengguna.

Detail proses

  1. Aplikasi menggunakan mikrofon dan kamera, memanggilAppOpsManager.startOp, stopOp, dan (atau) noteOp. Tindakan ini akan membuat catatan app-op di server sistem.
  2. UI Sistem memproses operasi aplikasi baru menggunakan pemroses AppOpsManager.OnOpActiveChangedInternalListener dan OnOpNotedListener. Saat penggunaan baru masuk (melalui panggilan ke startOp atau noteOp), UI Sistem memverifikasi bahwa penggunaan tersebut dilakukan oleh aplikasi sistem.
  3. Jika UI Sistem memverifikasi penggunaan aplikasi sistem, dan jika penggunaan tersebut adalah untuk mikrofon, UI Sistem akan memeriksa apakah mikrofon dibisukan.
  4. Jika UI Sistem memverifikasi penggunaan aplikasi non-sistem, (dan, untuk penggunaan mikrofon, bahwa mikrofon tidak dibisukan; untuk penggunaan kamera, bahwa kamera diaktifkan), UI Sistem akan menampilkan ikon yang mencerminkan penggunaan tersebut.

Jika menerima noteOp, yang tidak memiliki durasi, UI Sistem akan menampilkan ikon selama setidaknya 5 detik. Jika tidak, ikon akan ditampilkan hingga menerima stopOp, atau selama 5 detik, mana saja yang lebih lama. Pengguna mengklik ikon memulai intent yang menuju PermissionController untuk memulai Dialog.

PermissionController memuat semua penggunaan mikrofon dan kamera baru-baru ini. Fungsi ini memeriksa apakah ada aplikasi yang sedang berjalan, atau sedang berjalan dalam jangka waktu yang ditetapkan oleh UI Sistem. Jika menemukan kecocokan, aplikasi akan menampilkan nama aplikasi yang menggunakan izin, dan izin yang digunakan aplikasi tersebut.

Karena perubahan ini di Android 12 dan yang lebih tinggi, beberapa aplikasi harus mengubah perilakunya atau menerapkan perilaku khusus.

Telefoni harus menerapkan penggunaan izin (untuk memperhitungkan stack mikrofon terpisah yang digunakan dalam panggilan telepon), saat bekerja dengan aplikasi Google Penelusuran untuk Android (AGSA) dan Google Mobile Services (GMS).