Izin Notifikasi untuk Notifikasi Keikutsertaan

Notifikasi di Android 13 menggunakan model opt-in yang merupakan perubahan dari versi Android sebelumnya yang menggunakan model opt-out. Di Android 13, semua aplikasi harus meminta izin pengguna sebelum mengirimkan perintah notifikasi. Model ini membantu mengurangi gangguan notifikasi, meminimalkan informasi yang berlebihan, dan membantu pengguna mengontrol notifikasi apa yang muncul berdasarkan apa yang penting bagi mereka. Untuk mendukung model keikutsertaan, OEM harus menerapkan perubahan dalam sistem izin notifikasi dan runtime.

Halaman ini menjelaskan apa yang harus diterapkan OEM untuk mendukung perubahan ini dan cara memvalidasi penerapannya.

Terapkan perubahan untuk pemberitahuan keikutsertaan

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

Di Android 13 dan lebih tinggi, setelan yang menentukan apakah suatu aplikasi dapat mengirimkan notifikasi kepada pengguna disimpan dalam sistem izin. Sebelum Android 13, pengaturan ini disimpan di sistem notifikasi. Oleh karena itu, OEM harus memigrasikan data notifikasi yang ada tentang apakah suatu aplikasi diizinkan mengirim notifikasi, dari sistem notifikasi ke sistem izin runtime. OEM juga harus memelihara API yang ada dalam sistem notifikasi yang menampilkan data tersebut kepada pengembang aplikasi.

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

Perilaku notifikasi pengguna dalam model keikutsertaan

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

Perangkat di Android 13 Aplikasi yang menargetkan Android 13 atau lebih tinggi Aplikasi menargetkan versi yang lebih rendah dari Android 13
Pemasangan baru Notifikasi diblokir hingga diminta oleh aplikasi.

Aplikasi mengontrol kapan harus meminta izin.

Notifikasi diblokir hingga diminta oleh OS.

Izin diminta saat pertama kali menjalankan aplikasi.

Aplikasi yang ada (peningkatan) Pemberitahuan diperbolehkan sampai diminta oleh aplikasi.

Izin sementara diberikan hingga aplikasi meminta kualifikasi pertama dijalankan.

Pemberitahuan diperbolehkan sampai diminta oleh OS.

Izin sementara diberikan hingga aplikasi pertama kali dijalankan.

Pedoman pelaksanaan

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

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

  • Aplikasi yang baru diinstal di perangkat Android 13 tidak boleh mengirimkan notifikasi tanpa persetujuan pengguna atas permintaan izin.
    • Jika aplikasi menargetkan versi Android 13 dan lebih tinggi, notifikasi harus diblokir hingga diminta oleh aplikasi saat aplikasi mengontrol kapan dan apakah harus 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 pertama kali menjalankan aplikasi.
  • Aplikasi apa pun yang ada di perangkat sebelum upgrade ke Android 13, atau aplikasi apa pun yang dipulihkan melalui pencadangan dan pemulihan, harus diizinkan mengirimkan notifikasi hingga pengguna meluncurkan aktivitas dari aplikasi tersebut untuk pertama kalinya.

    • Untuk aplikasi yang menargetkan SDK versi Android 13 dan lebih tinggi, jika pengguna belum pernah menyesuaikan setelan notifikasi untuk aplikasi ini di tingkat aplikasi atau NotificationChannel , cabut pemberian izin sementara. Aplikasi kemudian harus meminta izin pengguna sebelum diizinkan untuk terus mengirimkan 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 menjalankan layanan latar depan lebih lanjut.

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

      Jika pengguna sebelumnya menyesuaikan setelan notifikasi di tingkat aplikasi atau NotificationChannel untuk aplikasi di perangkat yang ditingkatkan atau di cadangan yang dipulihkan ke perangkat, setelan tingkat aplikasi harus dimigrasikan ke sistem izin dengan tanda FLAG_PERMISSION_USER_SET . Tidak ada permintaan izin pemberitahuan lebih lanjut yang harus ditampilkan kepada pengguna kecuali aplikasi secara khusus memintanya.

  • Pencadangan dan pemulihan harus kompatibel antara perangkat Android 13 dan perangkat dari versi OS yang lebih lama. 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.

Validasi perubahan pada sistem notifikasi dan izin

Untuk memvalidasi implementasi, jalankan pengujian berikut: