Android 13'teki bildirimler, etkinleştirme modelini kullanır. Bu, devre dışı bırakma modelini kullanan önceki Android sürümlerinden farklıdır. Android 13'te tüm uygulamaların bildirim istemleri göndermeden önce kullanıcılardan izin alması gerekir. Bu model, bildirim kesintilerini azaltmaya, bilgi yükünü en aza indirmeye ve kullanıcıların kendileri için önemli olan bildirimlere göre hangi bildirimlerin gösterileceğini kontrol etmelerine yardımcı olur. OEM'lerin, etkinleştirme modelini desteklemek için bildirim ve çalışma zamanı izin sistemlerinde değişiklik yapması gerekir.
Bu sayfada, OEM'lerin bu değişikliği desteklemek için neleri uygulaması gerektiği ve uygulamanın nasıl doğrulanacağı açıklanmaktadır.
Etkinleştirme bildirimleriyle ilgili değişiklikleri uygulama
Android 13'ten itibaren, uygulamaların bildirim gönderebilmesi için sistemden android.permission.POST_NOTIFICATION
çalışma zamanında istenen izni isteyerek bildirim gönderme niyetini beyan etmesi gerekir.
Android 13 ve sonraki sürümlerde bir uygulamanın kullanıcıya bildirim gönderip gönderemeyeceğini belirleyen ayar izin sisteminde depolanır. Bu ayar, Android 13'ten önce bildirim sisteminde depolanıyordu. Bu nedenle OEM'lerin, bir uygulamanın bildirim göndermesine izin verilip verilmediğiyle ilgili mevcut bildirim verilerini bildirim sisteminden çalışma zamanında istenen izin sistemine taşıması gerekir. OEM'ler ayrıca bildirim sisteminde, bu verileri uygulama geliştiricilere sunan mevcut API'leri de tutmalıdır.
Bildirim ve izin sistemlerinde yapılan değişiklikler, kullanıcı bildirim davranışının etkinleştirme modeline dayanır ve Uygulama yönergeleri bölümünde açıklanır.
Etkinleştirme modelinde kullanıcı bildirimlerinin davranışı
Aşağıdaki tabloda, Android 13 çalıştıran bir cihazdaki çeşitli uygulama sürümlerinin bildirim davranışı gösterilmektedir:
Android 13 yüklü cihaz | Android 13 veya sonraki sürümleri hedefleyen uygulamalar | Android 13'ten önceki sürümleri hedefleyen uygulamalar |
---|---|---|
Yeni yükleme | Bildirimler, uygulama tarafından istenene kadar engellenir.
Uygulamalar, ne zaman izin isteyeceklerini kontrol eder. |
Bildirimler, işletim sistemi tarafından istenene kadar engellenir.
Uygulama ilk çalıştırıldığında izin istenir. |
Mevcut uygulama (yükseltme) | Uygulama tarafından istenene kadar bildirimlere izin verilir.
Uygulama ilk uygun çalıştırma sırasında izin isteyene kadar geçici izin verilir. |
Bildirimlere, işletim sistemi tarafından izin verilene kadar izin verilir.
Geçici izin, uygulamanın ilk çalıştırılmasına kadar verilir. |
Uygulamayla ilgili yönergeler
Referans uygulama için bildirim hizmeti, izin hizmeti ve politika hizmetine göz atın. Varsayılan izin işleyicileri için istisnalar uygulamak istiyorsanız Çalışma Zamanı İzinleri başlıklı makaleyi inceleyin.
Uygulama sırasında, Android 13 veya önceki SDK'ları hedefleyen uygulamaların kullanıcı bildirimi davranışı için aşağıdaki yönergeleri kullanın:
- Android 13 cihaza yeni yüklenen uygulamalar, kullanıcının izin istemlerini onaylamadan bildirim göndermemelidir.
- Uygulama Android 13 ve sonraki sürümleri hedefliyorsa kullanıcı izninin ne zaman ve ne şekilde isteneceğini uygulama kontrol ettiğinden, uygulama tarafından istenene kadar bildirimler engellenmelidir.
- Uygulama Android 13'ten eski sürümleri hedefliyorsa OS tarafından istenene kadar bildirimler engellenmiş olmalıdır. OS, uygulamanın ilk çalıştırıldığı sırada izin istemini göstermelidir.
Android 13'e yükseltme yapmadan önce cihazda bulunan veya yedekleme ve geri yükleme yoluyla geri yüklenen tüm uygulamaların, kullanıcı bu uygulamadan ilk kez bir etkinlik başlatana kadar bildirim göndermesine izin verilmelidir.
Android 13 ve sonraki sürümlerin SDK'sını hedefleyen uygulamalarda, kullanıcı daha önce bu uygulamanın bildirim ayarlarını uygulama veya
NotificationChannel
düzeyinde özelleştirmediyse geçici izin verme işlemini iptal edin. Bu durumda, uygulamaların bildirim göndermeye devam edebilmesi için kullanıcıdan izin alması gerekir.Android 13'ü hedefleyen yükseltilmiş bir uygulamanın geçici yükseltme izni kapsamında şu anda bildirim izni yoksa ve kullanıcı uygulamayı en az bir kez başlattıysa uygulamanın başka ön plan hizmeti çalıştırmasına izin verilmeden önce bildirim izni istemi gösterilmelidir.
Hedef SDK sürümü Android 13'ten eski olan uygulamalarda, kullanıcının uygulamadan bildirim almak isteyip istemediğini soran bir izin istemi göstermek için uygulama en az bir
NotificationChannel
oluşturduktan sonra ilk etkinlik lansmanını kesin.Bir kullanıcı daha önce yükseltme yapılan cihazdaki veya cihaza geri yüklenen bir yedekteki uygulama için bildirim ayarlarını uygulama veya
NotificationChannel
düzeyinde özelleştirdiyse uygulama düzeyindeki ayar,FLAG_PERMISSION_USER_SET
işaretiyle izin sistemine taşınmalıdır. Uygulama özel olarak izin istemediği sürece kullanıcıya başka bildirim izin istemi gösterilemez.
Yedekleme ve geri yükleme, Android 13 cihaz ile daha eski bir işletim sistemi sürümüne sahip cihaz arasında geriye ve ileriye dönük uyumlu olmalıdır. Android 13 cihazdan oluşturulan yedek veriler önceki OS sürümüne, önceki bir işletim sistemi sürümünün yedek verileri Android 13 cihaza geri yüklenmelidir.
Devam eden medya oynatmayla ilişkili medya bildirimleri, bildirim izninden muaf olmalıdır.
Bildirim ve izin sistemlerindeki değişiklikleri doğrulama
Uygulamayı doğrulamak için aşağıdaki testleri çalıştırın:
PreferencesHelperTest
'te belirtilen birim testleri,NotificationManagerServiceTest
.Yükseltmeleri, yedeklemeyi ve geri yüklemeyi test eden tüm manuel testler.
Bildirim gönderen CTS izin ve bildirim sistemi testi. Bu testlerin bazıları cts/tests/tests/permission/, NotificationManagerTest.java ve cts/tests/tests/notificationlegacy/ adresinde bulunur.