Android 13 (API düzeyi 33) ve sonraki sürümler
çalışma zamanı izni
muaf olmayan (ön plan hizmetleri (FGS) dahil) bildirimleri
uygulamadan:
POST_NOTIFICATIONS
.
Bu değişiklik, kullanıcıların en çok önem verdikleri bildirimlere odaklanmasını
oluşturabilirsiniz.
En kısa sürede Android 13 veya sonraki sürümleri hedeflemenizi önemle tavsiye ederiz bu özelliğin sunduğu ek denetim ve esneklikten mümkün olduğunca yararlanabilirsiniz. özelliğini kullanabilirsiniz. 12L (API düzeyi 32) veya daha eski sürümleri hedeflemeye devam ederseniz izini uygulamanızın işlevi bağlamında isteme konusunda biraz esneklik kaybedersiniz.
İzni beyan etme
Uygulamanızdan yeni bildirim izni istemek için uygulamanızı Android 13'ü hedefleyecek şekilde güncelleyin ve aşağıdaki bölümlerde gösterildiği gibi diğer çalışma zamanı izinlerini isteme ile benzer bir süreci tamamlayın.
İhtiyacınız olan izin uygulamanızın manifest dosyasında beyan edin şu kod snippet'inde görünür:
<manifest ...> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <application ...> ... </application> </manifest>
Uygulama özellikleri, izin iletişim kutusundaki kullanıcının seçimine bağlıdır
Bu iletişim kutusunda kullanıcılar aşağıdaki işlemleri yapabilir:
- İzin ver'i seçin.
- İzin verme'yi seçin.
- Hiçbir düğmeye basmadan iletişim kutusunu kaydırarak kapatın.
Aşağıdaki bölümlerde, kullanıcının gerçekleştirdiği işleme bağlı olarak uygulamanızın nasıl davranacağı açıklanmaktadır.
Kullanıcı "İzin ver"i seçer
Kullanıcı izin ver seçeneğini belirlerse uygulamanız aşağıdakileri yapabilir:
- Bildirim gönderme Tümü bildirim kanalları izin verilir.
- Ön plan hizmetleriyle ilgili bildirimler yayınlayabilirsiniz. Bu bildirimler bildirim çekmecesinde görünür.
Kullanıcı "İzin verme"yi seçer
Kullanıcı İzin verme seçeneğini belirlerse uygulamanız, istisna kapsamına girmediği sürece bildirim gönderemez. Tümü belirli birkaç kanal dışında bildirim kanalları engellenir. rolleriyle birlikte çalışır. Bu durum, kullanıcı sistem ayarlarından uygulamanızla ilgili tüm bildirimleri manuel olarak devre dışı bıraktığında ortaya çıkan davranışa benzer.
Dikkat: Uygulamanız 12L veya daha eski bir sürümü hedefliyorsa ve kullanıcı İzin verme'ye bir kez bile dokunursa aşağıdakilerden biri gerçekleşene kadar kullanıcıdan tekrar izin istenmez:
- Kullanıcı, uygulamanızı kaldırıp yeniden yükler.
- Uygulamanızı Android 13 veya sonraki bir sürümü hedefleyecek şekilde güncellemeniz gerekir.
Kullanıcı, iletişim kutusunu kaydırarak kapatır
Kullanıcı, ekranı kaydırarak iletişim kutusundan ayrılırsa (yani, ikisi de seçilmemiş) izin ver veya izin verme: Bildirim izninin durumu unutmayın.
Yeni yüklenen uygulamalardaki efektler
Bir kullanıcı, uygulamanızı Android 13 veya sonraki sürümleri çalıştıran bir cihaza yüklerse uygulamanızın bildirimleri varsayılan olarak kapalıdır. Uygulamanız beklemelidir - siz yeni izin isteyene kadar bildirim gönderir ve kullanıcı uygulamanıza bu izni verir.
İzinler iletişim kutusunun gösterileceği zaman, uygulamanızın hedefine bağlıdır SDK sürümü:
- Uygulamanız Android 13 veya sonraki sürümleri hedefliyorsa izin iletişim kutusunun ne zaman gösterileceği tamamen uygulamanızın kontrolündedir. Bu fırsatı değerlendirerek kullanıcılara uygulamanın neden bu izne ihtiyacı olduğunu açıklayın ve izin vermeye teşvik edin.
- Uygulamanız 12L (API düzeyi 32) veya daha eski sürümleri hedefliyorsa sistem, bildirim kanalı oluşturduktan sonra uygulamanız bir etkinliği ilk kez başlattığında veya uygulamanız bir etkinliği başlatıp ilk bildirim kanalını oluşturduğunda izin iletişim kutusunu gösterir. Bu uygulama başlangıcında olur.
Mevcut uygulamalarda yapılan güncellemelerin etkileri
Bildirim izniyle ilgili kesintileri en aza indirmek için sistem, kullanıcı cihazını Android 13 veya sonraki bir sürüme yükselttiğinde tüm uygun uygulamalara otomatik olarak önceden izin verir. Başka bir deyişle bu uygulamalar, kullanıcılara bildirim göndermelidir. Kullanıcılar çalışma zamanında istenen izin istemini görmez.
İzin ön izni için uygunluk
Uygulamanızın otomatik ön izine uygun olması için ve bildirimleri açıkça devre dışı bırakılmamışsa, 12L veya daha düşük kapasiteli bir cihazda kullanıcı tarafından değiştirilir.
Kullanıcı, 12L veya önceki sürümleri çalıştıran bir cihazda uygulamanızın bildirimlerini devre dışı bıraktıysa cihaz Android 13 veya sonraki bir sürüme yükseltildiğinde bu ret devam eder.
Muafiyetler
Bu bölümde, bildirim izni davranış değişikliği. Android 13 (API düzeyi 33) veya sonraki sürümlerde kullanıcı bildirim iznini reddederse yine de bildirimle ilgili ön plan hizmetlerine Görev Yöneticisi ama bu görevleri bildirim çekmecesi.
Medya oturumları
Şununla ilgili bildirimler: medya oturumları. hariç tutmanızı öneririz.
Telefon aramalarını kendi kendine yönetecek şekilde yapılandırılmış uygulamalar
Uygulamanız telefon aramalarını kendi kendine yönetecek şekilde yapılandırılmışsa Notification.CallStyle
bildirim stilini kullanan bildirimler göndermesi için POST_NOTIFICATIONS
iznine ihtiyacı yoktur.
Sistem, uygulamanızı kendi kendini yöneten bir telefon için yapılandırılmış olarak değerlendirir işlevini çağırır.
MANAGE_OWN_CALLS
iznini beyan eder.- Şunu uygular:
ConnectionService
kullanır. - Şu numarayı arayarak cihazın telekom sağlayıcısına kaydedilir:
registerPhoneAccount()
.
Uygulamanızı test etme
Aşağıdaki durumlarda bildirim izninin uygulamanızı nasıl etkileyeceğini İlk olarak Android 13 veya sonraki sürümleri çalıştıran bir cihazda kullanılır. İlgili içeriği oluşturmak için kullanılan takip ediliyor Android Debug Bridge (ADB) komut grupları, en yaygın kullanıcı tercihleri sırasını ve cihaz yükseltmelerini simüle etmenizi sağlar. sıfırlamanıza gerek kalmadan:
Uygulama, şu anda çalışan bir cihaza yeni yüklenmiş Android 13 veya sonraki sürümler:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
Uygulama, 12L veya önceki sürümlerin yüklü olduğu bir cihaza yüklendiğinde bildirimler etkin durumda kalır ve cihaz daha sonra Android 13 veya sonraki bir sürüme yükseltilirse:
adb shell pm grant PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
Uygulama bir cihaza yüklendiğinde, kullanıcı bildirimleri manuel olarak devre dışı bırakır. 12L veya daha düşük bir şarja sahip cihaz, ardından Android 13 veya sonraki bir sürüme geçme:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
En iyi uygulamalar
Bu bölümde, yeni bildirim iznini uygulamanızda en etkili şekilde kullanabileceğiniz çeşitli yöntemler açıklanmaktadır.
Uygulamanızın hedef SDK sürümünü güncelleyin
Uygulamanıza izin iletişim kutusunun ne zaman gösterileceği konusunda daha fazla esneklik sunmak için uygulamanızı Android 13 veya sonraki bir sürümü hedefleyecek şekilde güncelleyin.
Bildirim izni isteminin gösterilmesini bekleyin
Kullanıcılardan herhangi bir izin vermelerini istemeden önce kendilerini tanımalarını sağlayın. nasıl sağlayabileceğini de öğreneceksiniz.
Yeni kullanıcılar uygulamayı keşfetmek ve her bildirim isteğinin avantajlarını kendileri deneyimlemek isteyebilir. Kullanıcı işlemlerinden izin istemi tetikleyebilirsiniz. Aşağıdaki listede, bildirim izni istemlerini göstermenin uygun olduğu durumlara dair birkaç örnek verilmiştir:
- Kullanıcı "uyarı ziline" dokunur düğmesini tıklayın.
- Kullanıcı, birinin sosyal medya hesabını takip etmeyi seçer.
- Kullanıcı, yemek siparişi gönderir.
Şekil 1'de, bildirim isteğinde bulunmak için önerilen bir iş akışı gösterilmektedir
izni gerekir. Aksi hâlde
shouldShowRequestPermissionRationale()
true
değerini döndürürse uygulamanızın orta ekranı göstermesi gerekmez.
"Bildirim alın!" başlık metnine sahip.
Alternatif olarak, kullanıcılara uygulamanızla tanışmaları için bir fırsat tanıdıktan sonra istek gösterilecek şekilde ayar yapabilirsiniz. Örneğin, kullanıcının uygulamanızı üçüncü veya dördüncü kez açmasını bekleyebilirsiniz.
İzni bağlam içinde isteyin
Uygulamanızda bildirim izinleri istediğinizde, bildirimlerin ne için kullanıldığının ve kullanıcının neden etkinleştirmesi gerektiğinin açıkça anlaşılması için bunu doğru bağlamda yapın. Örneğin, bir e-posta uygulaması her yeni e-posta veya yalnızca kullanıcının tek alıcısı olduğu e-postalar için bildirim gönderme seçenekleri içerebilir.
Niyetinizi net bir şekilde belirtmek için bu fırsattan yararlanın. Böylece kullanıcıların uygulamanıza bildirim izni verme olasılığı artar.
Uygulamanızın bildirim gönderip gönderemeyeceğini kontrol etme
Uygulamanız bildirim göndermeden önce kullanıcının uygulamanız için bildirimleri etkinleştirip etkinleştirmediğini onaylayın. Bunun için areNotificationsEnabled()
işlevini çağırın.
İzni sorumlu şekilde kullanma
Bildirim gönderme onayı aldıktan sonra, ilgili izni kullanmayı unutmayın. sorumluluk bilinciyle geliştiriyoruz. Kullanıcılar, uygulamanızın her gün gönderdiği bildirimlerin sayısını görebilir gönderir ve izini iptal edebilirler. istediğiniz zaman izleyebilirsiniz.