Bildirim çalışma zamanında istenen izin

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ı gerekir.

En kısa sürede Android 13 veya sonraki sürümleri hedeflemenizi önemle tavsiye ederiz ve bu özelliğin sağladığı ek denetim ve esneklikten mümkün olduğunca yararlanabilirsiniz. özelliğini kullanabilirsiniz. 12L (API düzeyi 32) veya daha düşük bir sürümü hedeflemeye devam ederseniz Uygulamanızın kullanımı bağlamında izin isteme ile ilgili esnekliği kaybetmek işlevsellik.

İzni beyan edin

Uygulamanızdan yeni bildirim izni istemek için uygulamanızı şu şekilde güncelleyin: Android 13'ü hedefler ve çalışma zamanında istenen diğer izinleri, görebilirsiniz.

İ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:

Aşağıdaki bölümlerde, uygulamanızın hangi işleme göre birkaç önerimiz var.

Kullanıcı "İzin ver"i seçer

Kullanıcı izin ver seçeneğini belirlerse uygulamanız aşağıdakileri yapabilir:

Kullanıcı "İzin verme"yi seçer

Kullanıcı, izin verme seçeneğini belirlerse uygulamanız muafiyete uygun olmadığı sürece bildirim göndermez. Tümü belirli birkaç kanal dışında bildirim kanalları engellenir. rollerini anlatacağım. Bu, kullanıcı el ile el ile çevirdiğinde ortaya çıkan davranışa benzer Tüm bildirimleri sistem ayarlarında devre dışı bırakabilirsiniz.

Dikkat: Uygulamanız 12L veya altını hedefliyorsa Kullanıcı İzin verme'ye dokunduğunda yalnızca bir kez bile olsa bunu yapması istenmez. aşağıdakilerden biri gerçekleşene kadar tekrarlayın:

  • 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 kutusundan kaydırarak uzaklaşıyor

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

Kullanıcı, uygulamanızı Android 13 çalıştıran bir cihaza yüklerse veya daha yüksek bir değer olduğunda, 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 saat, uygulamanızın hedefine bağlıdır SDK sürümü:

  • Uygulamanız Android 13 veya sonraki bir sürümü hedefliyorsa tamamlandı. izin iletişim kutusunun ne zaman görüntüleneceğini kontrol edebilir. Bu fırsatı, kullanıcılara uygulamanın neden bu izne ihtiyaç duyduğunu açıklamak için kullanın. teşvik etmelisiniz.
  • Uygulamanız 12L (API düzeyi 32) veya daha düşük bir sürümü hedefliyorsa sistem Uygulamanız sizden sonra ilk kez bir etkinlik başlattığında görüntülenen izin iletişim kutusu bildirim kanalı oluşturduğunuzda veya Uygulama bir etkinlik başlatır ve ilk bildirim kanalını oluşturur. Bu uygulama başlangıcında olur.

Mevcut uygulamalarda yapılan güncellemelerin etkileri

Bildirim izniyle ilgili kesintileri en aza indirmek için otomatik olarak tüm kullanıcılara Kullanıcı, cihazını yeni sürüme geçirdiğinde uygun uygulamalara sahip olabilir. Android 13 veya sonraki sürümler. 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.

Önceden izin almaya 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ı, çalışan bir cihazda uygulamanızın bildirimlerini devre dışı bıraktıysa 12L veya daha düşükse bu ret, cihaz Android 13 veya sonraki sürümlere yükseltmeler.

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 başına yönetecek şekilde yapılandırılmış uygulamalar

Uygulamanız telefon aramalarını kendi kendine yönetecek şekilde kendini yapılandırırsa uygulamanızın size gönderebilmesi için POST_NOTIFICATIONS iznine bildirimi kullanan Notification.CallStyle bildirim stiline dokunun.

Sistem, uygulamanızı kendi kendini yöneten bir telefon için yapılandırılmış olarak değerlendirir işlevini çağırır.

  1. Şunu tanımlar: MANAGE_OWN_CALLS izni gerekir.
  2. Şunu uygular: ConnectionService kullanır.
  3. Ş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ıraları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 bir cihazda yüklü olduğunda kullanıcı bildirimleri etkin tutar 12L veya daha düşük bir şarja sahip cihaz, ardından Android 13 veya sonraki bir sürüme geçme:

    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 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 bildirimi kullanmanın çeşitli yolları açıklanmaktadır. en etkili şekilde kullanmanız gerekir.

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 özelliklerin farkına varmak isteyebilir. faydalarını görebilirsiniz. Şunları yapabilirsiniz: izin istemini tetikleyin kullanıcı işleminden yararlanabilir. Aşağıdaki listede, bir reklamverenin bildirim izin istemini göstermenin vakti geldi:

  • 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 verir.

Ş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 görüntüleme isteğinde bulunduktan sonra bir istek de hakkında bilgi sahibi olması gerekir. Örneğin, web sitesi kullanıcılarının Kullanıcı uygulamanızı üçüncü veya dördüncü kez başlattığında.

Kullanıcı oturum açtıktan sonra,
   gezi güncellemeleriyle ilgili bildirim almak için davetiye gönderin. Kullanıcı
   Bendeyim düğmesi. Uygulama yeni izni istiyor. Bu da sistemin
   iletişim kutusu
Şekil 1. İstekte bulunmak için önerilen kullanıcı odaklı bir iş akışı bildirim iznini devre dışı bırakabilirsiniz. Orta ekran yalnızca şu durumlarda gereklidir: shouldShowRequestPermissionRationale(), true değerini döndürür.

İzni bağlam içinde isteyin

Uygulamanızda bildirim izni istediğinizde bunu doğru Böylece, bildirimlerin ne için kullanıldığı açıkça anlaşılır ve kullanıcının neden katılması gerektiği. Örneğin, bir e-posta uygulaması şu seçenekleri içerebilir: her yeni e-posta veya yalnızca kullanıcının yalnızca alıcıya ait olanlar.

Bu fırsatı, amaçlarınıza şeffaflık kazandırmak için kullanın. Böylece kullanıcılar, uygulamanıza bildirim izni verme ihtimali yüksek.

Uygulamanızın bildirim gönderip gönderemeyeceğini kontrol etme

Uygulamanız bildirim göndermeden önce kullanıcının bildirim almayı etkinleştirip etkinleştirmediğini onaylayın bildirimler alın. Bunun için şu numarayı arayın: areNotificationsEnabled().

İzni hassas bir şekilde kullanın

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.