Notifikasi di Android 13 menggunakan model keikutsertaan, yang adalah perubahan dari versi Android sebelumnya, yang menggunakan model pilihan tidak ikut. Di beberapa Android 13, semua aplikasi harus meminta izin kepada pengguna sebelum pengiriman prompt notifikasi. Model ini membantu mengurangi notifikasi interupsi, meminimalkan kelebihan beban informasi, dan membantu pengguna mengontrol notifikasi muncul berdasarkan apa yang penting bagi mereka. Untuk mendukung model keikutsertaan, OEM harus menerapkan perubahan notifikasi dan runtime sistem izin akses.
Halaman ini menjelaskan apa saja yang harus diterapkan OEM untuk mendukung perubahan ini serta cara untuk memvalidasi penerapan.
Terapkan perubahan untuk notifikasi keikutsertaan
Mulai Android 13, aplikasi harus mendeklarasikan
untuk mengirimkan notifikasi dengan meminta
android.permission.POST_NOTIFICATION
izin runtime dari sistem sebelum mereka dapat mengirim notifikasi.
Di Android 13 dan yang lebih tinggi, setelan yang menentukan apakah aplikasi dapat mengirim notifikasi ke pengguna disimpan dalam sistem izin. Sebelum Android 13, setelan ini disimpan di sistem notifikasi. Oleh karena itu, OEM harus memigrasikan data notifikasi yang ada tentang apakah aplikasi diizinkan untuk mengirim notifikasi, dari notifikasi ke dalam sistem izin runtime. OEM juga harus mempertahankan API yang ada dalam sistem notifikasi yang memunculkan data itu kepada pengembang aplikasi.
Perubahan pada sistem notifikasi dan izin didasarkan pada model perilaku notifikasi pengguna dan yang dijelaskan di bagian Panduan penerapan.
Perilaku notifikasi pengguna dalam model keikutsertaan
Tabel berikut mengilustrasikan perilaku notifikasi untuk berbagai aplikasi versi di perangkat yang menjalankan Android 13:
Perangkat yang menjalankan Android 13 | Aplikasi yang menargetkan Android 13 atau yang lebih tinggi | Versi penargetan aplikasi yang lebih rendah dari Android 13 |
---|---|---|
Instal baru | Notifikasi diblokir hingga diminta oleh aplikasi.
Aplikasi mengontrol kapan harus meminta izin. |
Notifikasi diblokir hingga diminta oleh OS.
Izin diminta saat aplikasi dijalankan untuk pertama kalinya. |
Aplikasi yang sudah ada (upgrade) | Notifikasi akan diizinkan hingga diminta oleh aplikasi.
Izin sementara diberikan hingga aplikasi meminta proses pertama yang memenuhi syarat. |
Notifikasi diizinkan hingga diminta oleh OS.
Izin sementara diberikan hingga aplikasi dijalankan untuk pertama kalinya. |
Panduan penerapan
Untuk penerapan referensi, lihat layanan notifikasi, layanan izin dan layanan kebijakan. Untuk mengimplementasikan pengecualian untuk pengendali izin default, lihat Izin Runtime.
Selama penerapan, gunakan panduan berikut tentang notifikasi pengguna perilaku untuk aplikasi yang menargetkan SDK Android 13 atau yang lebih rendah:
- Aplikasi yang baru diinstal di perangkat Android 13 harus
tidak mengirimkan notifikasi tanpa pengguna
yang menyetujui dialog izin.
- Jika aplikasi menargetkan versi Android 13 dan lebih tinggi, notifikasi harus diblokir sampai diminta oleh aplikasi sebagai aplikasi mengontrol kapan dan apakah izin akses pengguna harus diminta.
- Jika aplikasi menargetkan versi yang lebih rendah dari Android 13, notifikasi harus diblokir hingga seperti yang diminta oleh OS. OS harus menampilkan {i> permission prompt<i} ketika pertama kali aplikasi.
Aplikasi apa pun yang ada pada perangkat sebelum upgrade ke Android 13, atau aplikasi apa pun yang dipulihkan melalui pencadangan dan pemulihan, harus diizinkan untuk mengirim notifikasi hingga saat pengguna meluncurkan aktivitas dari aplikasi tersebut.
Untuk aplikasi yang menargetkan SDK versi Android 13 dan lebih tinggi, jika sebelumnya pengguna belum menyesuaikan pengaturan notifikasi untuk aplikasi ini di tingkat aplikasi atau
NotificationChannel
, cabut izin sementara pemberian izin akses. Aplikasi kemudian harus meminta izin kepada pengguna sebelum diizinkan untuk tetap mengirimkan notifikasi.Jika aplikasi yang diupgrade dan menargetkan Android 13 tidak saat ini memiliki izin notifikasi melalui upgrade sementara dan pengguna meluncurkannya minimal satu kali, aplikasi harus menampilkan prompt izin notifikasi sebelum diizinkan untuk menjalankan latar depan lebih lanjut layanan IT perusahaan mereka.
Untuk aplikasi yang memiliki SDK target versi yang lebih rendah dari Android 13 intersepsi peluncuran aktivitas pertama setelah aplikasi membuat setidaknya satu
NotificationChannel
untuk menampilkan prompt izin yang menanyakan apakah pengguna ingin menerima notifikasi dari aplikasi.Jika pengguna sebelumnya menyesuaikan pengaturan notifikasi pada tingkat aplikasi atau
NotificationChannel
untuk aplikasi di perangkat yang diupgrade atau di cadangan dipulihkan ke perangkat, setelan tingkat aplikasi harus dimigrasikan ke sistem izin dengan flagFLAG_PERMISSION_USER_SET
. Tidak ada lagi permintaan izin notifikasi harus ditampilkan kepada pengguna, kecuali aplikasi secara khusus memintanya.
Pencadangan dan pemulihan harus kompatibel dengan fitur mundur dan maju antara Perangkat Android 13 dan perangkat dari OS sebelumnya . Mencadangkan data yang dihasilkan dari Android 13 perangkat harus memulihkan ke versi OS sebelumnya, dan mencadangkan data dari versi sebelumnya Versi OS harus dipulihkan ke perangkat Android 13.
Notifikasi media yang terkait dengan pemutaran media yang sedang berlangsung harus dikecualikan dari izin notifikasi.
Memvalidasi perubahan pada sistem notifikasi dan izin
Untuk memvalidasi implementasi, jalankan pengujian berikut:
Pengujian unit seperti yang ditentukan dalam
PreferencesHelperTest
,NotificationManagerServiceTest
.Pengujian manual apa pun yang menguji upgrade serta pencadangan dan pemulihan.
Semua uji sistem Izin dan Notifikasi CTS yang mengirim notifikasi. Beberapa pengujian ini berada di cts/tests/tests/permission/, NotificationManagerTest.java, dan cts/tests/tests/notificationlegacy/.