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 untuk 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 kamera dan izin operasi aplikasi mikrofon. Akses catatan operasi aplikasi 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 saat 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 untuk semua OEM.
Persyaratan visibilitas indikator
Berikut adalah 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 berada di posisi yang sama secara konsisten, dan tidak boleh diblokir oleh aplikasi saat diluncurkan.
- Kedua indikator harus berwarna hijau (atau variasi hijau).
- Mengklik salah satu atau kedua indikator harus merender notifikasi
affordance 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 berjalan, atau berusia kurang dari 5 detik.
- Ikon status bar ditampilkan setiap kali aplikasi memiliki akses mikrofon atau kamera yang sensitif terhadap pengguna.
- Pengguna dapat mengklik ikon ini dan melihat aplikasi mana yang dapat mengakses mikrofon, kamera, atau keduanya.
Gambar 1. Indikator mikrofon dan kamera yang sedang digunakan yang menampilkan akses aktif (sudut kanan atas)
Akses dianggap aktif selama indikator ditampilkan. Ikon akan ditampilkan terlebih dahulu, lalu bertransisi ke titik yang tetap ada hingga aplikasi ditutup atau ditutup.
Saat pengguna mengetuk indikator, dialog akan terbuka, yang menunjukkan bahwa aplikasi menggunakan kamera, mikrofon, atau keduanya.
Gambar 2. Indikator akses aktif dan terbaru
Gambar pada Gambar 2 menampilkan indikator akses aktif ketika 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 tidak aktif. Semua aplikasi aktif akan 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 akan tetap beku sampai pengguna menutup dialog notifikasi.
Kirim dan aktifkan
Class PermissionManager
menyediakan metode untuk mengisi dialog, yang
berada di UI Sistem.
- UI sistem bereaksi terhadap tombol konfigurasi perangkat:
privacy/mic_camera_indicators_enabled
. - Pengalihan diperlukan karena ada dua kendaraan pengiriman terpisah, dalam
urutan ini:
- Penayangan.
- 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 menentukan aplikasi mana yang menggunakan data
PermissionController
menyediakan mekanisme untuk menentukan aplikasi mana yang
menggunakan data. SystemUI memproses 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.
Gambar 3. Komponen sistem dan alur transisi (UI)
Transisi bernomor pada Gambar 3 dijelaskan di bawah ini:
1- Aplikasi meminta data pribadi dari sistem.
2- Sistem memeriksa izin. Jika izin diizinkan, sistem akan memberi tahu penyedia data, dan mencatat penggunaannya 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
- Aplikasi menggunakan mikrofon dan kamera, memanggil
AppOpsManager.startOp
,stopOp
, dan (atau)noteOp
. Tindakan ini akan membuat data operasi aplikasi di server sistem. - UI Sistem memproses aplikasi baru menggunakan pemroses
AppOpsManager.OnOpActiveChangedInternalListener
danOnOpNotedListener
. Saat penggunaan baru masuk (melalui panggilan kestartOp
ataunoteOp
), UI Sistem akan memverifikasi bahwa penggunaan tersebut dilakukan oleh aplikasi sistem. - Jika UI Sistem memverifikasi penggunaan aplikasi sistem, dan jika penggunaannya ditujukan untuk mikrofon, UI Sistem akan memeriksa apakah mikrofon dibisukan.
- Jika UI Sistem memverifikasi penggunaan aplikasi non-sistem, (dan, untuk penggunaan mikrofon, bahwa mikrofon diaktifkan; untuk penggunaan kamera, bahwa kamera diaktifkan), UI Sistem akan menampilkan ikon yang mencerminkan penggunaan tersebut.
Jika UI Sistem menerima noteOp
yang tidak memiliki durasi, ikon akan ditampilkan
setidaknya selama 5 detik. Jika tidak, ikon akan ditampilkan hingga menerima
stopOp
, atau selama 5 detik, mana saja yang lebih lama. Pengguna yang mengklik ikon
akan memulai intent yang mengarah ke PermissionController
untuk memulai Dialog.
PermissionController
memuat semua penggunaan terbaru untuk mikrofon dan kamera. Pemeriksaan ini
akan memeriksa apakah salah satu dari proses tersebut sedang berjalan, atau 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.
Karena perubahan ini di Android 12 dan yang lebih baru, beberapa aplikasi harus mengubah perilakunya atau menerapkan perilaku khusus.
Telepon harus menerapkan penggunaan izin (untuk memperhitungkan stack mikrofon terpisah yang digunakan dalam panggilan telepon), saat menggunakan aplikasi Google Penelusuran Android (AGSA) dan Layanan Seluler Google (GMS).