Izin notifikasi untuk notifikasi keikutsertaan

Notifikasi di Android 13 menggunakan model keikutsertaan, yang merupakan perubahan dari versi Android sebelumnya, yang menggunakan model keikutsertaan. Di Android 13, semua aplikasi harus meminta izin pengguna sebelum mengirim perintah notifikasi. Model ini membantu mengurangi gangguan notifikasi, meminimalkan kelebihan informasi, dan membantu pengguna mengontrol notifikasi yang muncul berdasarkan hal yang penting bagi mereka. Untuk mendukung model keikutsertaan, OEM harus menerapkan perubahan pada sistem notifikasi dan izin runtime.

Halaman ini menjelaskan hal yang harus diimplementasikan OEM untuk mendukung perubahan ini dan cara memvalidasi penerapannya.

Terapkan perubahan untuk notifikasi keikutsertaan

Mulai Android 13, aplikasi harus mendeklarasikan intent untuk mengirim notifikasi dengan meminta izin runtime android.permission.POST_NOTIFICATION dari sistem sebelum dapat mengirim notifikasi.

Di Android 13 dan yang lebih baru, setelan yang menentukan apakah aplikasi dapat mengirim notifikasi kepada 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 sistem notifikasi ke sistem izin runtime. OEM juga harus mempertahankan API yang ada dalam sistem notifikasi yang menampilkan data tersebut kepada developer aplikasi.

Perubahan pada sistem notifikasi dan izin didasarkan pada model keikutsertaan perilaku notifikasi pengguna dan dijelaskan di bagian Panduan penerapan.

Perilaku notifikasi pengguna dalam model keikutsertaan

Tabel berikut mengilustrasikan perilaku notifikasi untuk berbagai versi aplikasi di perangkat yang menjalankan Android 13:

Perangkat yang menjalankan Android 13 Aplikasi yang menargetkan Android 13 atau yang lebih baru Aplikasi yang menargetkan versi yang lebih rendah dari Android 13
Penginstalan 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 diizinkan hingga diminta oleh aplikasi.

Izin sementara diberikan hingga aplikasi meminta izin pada operasi kualifikasi pertama.

Notifikasi diizinkan hingga diminta oleh OS.

Izin sementara diberikan hingga aplikasi dijalankan pertama kali.

Panduan penerapan

Untuk implementasi referensi, lihat layanan notifikasi, layanan izin, dan layanan kebijakan. Untuk menerapkan pengecualian untuk pengendali izin default, lihat Izin Runtime.

Selama implementasi, gunakan panduan berikut tentang perilaku notifikasi pengguna untuk aplikasi yang menargetkan SDK Android 13 atau yang lebih rendah:

  • Aplikasi yang baru diinstal di perangkat Android 13 tidak boleh mengirim notifikasi tanpa pengguna menyetujui permintaan izin.
    • Jika aplikasi menargetkan versi Android 13 dan yang lebih tinggi, notifikasi harus diblokir hingga diminta oleh aplikasi karena aplikasi mengontrol kapan dan apakah akan meminta izin pengguna.
    • Jika aplikasi menargetkan versi yang lebih rendah dari Android 13, notifikasi harus diblokir hingga diminta oleh OS. OS harus menampilkan permintaan izin saat aplikasi pertama kali dijalankan.
  • Setiap aplikasi yang ada di perangkat sebelum upgrade ke Android 13, atau aplikasi apa pun yang dipulihkan melalui pencadangan dan pemulihan, harus diizinkan untuk mengirim notifikasi hingga pertama kali pengguna meluncurkan aktivitas dari aplikasi tersebut.

    • Untuk aplikasi yang menargetkan SDK versi Android 13 dan yang lebih tinggi, jika pengguna sebelumnya belum menyesuaikan setelan notifikasi untuk aplikasi ini di tingkat aplikasi atau NotificationChannel, cabut pemberian izin sementara. Selanjutnya, aplikasi harus meminta izin pengguna sebelum diizinkan untuk terus mengirim notifikasi.

      Jika aplikasi yang diupgrade yang menargetkan Android 13 saat ini tidak memiliki izin notifikasi melalui pemberian upgrade sementara, dan pengguna telah meluncurkannya setidaknya sekali, aplikasi harus menampilkan permintaan izin notifikasi sebelum diizinkan untuk menjalankan layanan latar depan lebih lanjut.

    • Untuk aplikasi yang memiliki versi SDK target yang lebih rendah dari Android 13, intersep peluncuran aktivitas pertama setelah aplikasi membuat setidaknya satu NotificationChannel untuk menampilkan perintah izin yang menanyakan apakah pengguna ingin menerima notifikasi dari aplikasi.

      Jika pengguna sebelumnya menyesuaikan setelan notifikasi di level aplikasi atau NotificationChannel untuk aplikasi di perangkat yang diupgrade atau dalam pencadangan yang dipulihkan ke perangkat, setelan level aplikasi harus dimigrasikan ke sistem izin dengan flag FLAG_PERMISSION_USER_SET. Tidak ada permintaan izin notifikasi lebih lanjut yang harus ditampilkan kepada pengguna, kecuali jika aplikasi meminta secara khusus.

  • Pencadangan dan pemulihan harus kompatibel dengan versi sebelumnya dan versi sebelumnya antara perangkat Android 13 dan perangkat dari versi OS sebelumnya. Data cadangan yang dihasilkan dari perangkat Android 13 harus dipulihkan ke versi OS sebelumnya, dan data cadangan dari versi OS sebelumnya 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: