Bildirimlere genel bakış

Bildirim, Android'in kullanıcıya hatırlatıcıları, diğer kişilerin iletişimlerini veya uygulamanızdaki diğer güncel bilgileri sağlamak için uygulamanızın kullanıcı arayüzü dışında görüntülediği bir mesajdır. Kullanıcılar uygulamanızı açmak için bildirime dokunabilir veya doğrudan bildirimden işlem yapabilirler.

Bu sayfada, bildirimlerin göründüğü yerler ve kullanılabilen özellikler hakkında genel bir bakış sunulur. Bildirim oluşturmaya başlamak için Bildirim oluşturma konusunu okuyun.

Bildirim tasarımı ve etkileşim kalıpları hakkında daha fazla bilgi için Bildirim tasarım kılavuzuna bakın.

Cihazlardaki görünümler

Bildirimler, farklı konum ve biçimlerdeki kullanıcılara otomatik olarak gösterilir. Bildirim, durum çubuğunda bir simge, bildirim çekmecesinde daha ayrıntılı bir giriş ve uygulamanın simgesinde bir rozet olarak görünür. Bildirimler, eşlenmiş giyilebilir cihazlarda da görünür.

Durum çubuğu ve bildirim çekmecesi

Yayınladığınız bir bildirim ilk olarak durum çubuğunda bir simge olarak görünür.

Şekil 1. Bildirim simgeleri durum çubuğunun sol tarafında görünür.

Kullanıcılar, daha fazla ayrıntı görüntüleyebilecekleri ve bildirimle işlem yapabilecekleri bildirim çekmecesini açmak için durum çubuğunu aşağı kaydırabilirler.

Şekil 2. Bildirim çekmecesindeki bildirimler'e dokunun.

Kullanıcılar, sağlanan ek içerik ve işlem düğmelerini gösteren genişletilmiş görünümü açmak için çekmecedeki bir bildirimi aşağı doğru sürükleyebilirler. Android 13'ten itibaren bu genişletilmiş görünümde, kullanıcıların ön plan hizmetleri devam eden bir uygulamayı durdurmasını sağlayan bir düğme bulunmaktadır.

Bir bildirim, uygulama veya kullanıcı tarafından kapatılana kadar bildirim çekmecesinde görünür.

Uyarı bildirimi

Android 5.0 sürümünden itibaren bildirimler, uyarı bildirimi adı verilen kayan bir pencerede kısa bir süreliğine görünebilir. Bu davranış, normalde kullanıcının hemen bilmesi gereken önemli bildirimler için geçerlidir ve yalnızca cihazın kilidi açıksa görünür.

Şekil 3. Ön plan uygulamasının önünde bir uyarı bildirimi görünür.

Uygulamanız bildirimi yayınladığında uyarı bildirimi görünür. Bir süre sonra kaybolur, ancak bildirim çekmecesinde her zamanki gibi görünür olmaya devam eder.

Uyarı bildirimlerini tetikleyebilecek koşullar şunlardır:

  • Kullanıcının etkinliği tam ekran modundadır (ör. uygulama fullScreenIntent kullanırken).

  • Bildirim yüksek önceliğe sahiptir ve Android 7.1 (API düzeyi 25) ve önceki sürümleri çalıştıran cihazlarda zil sesleri veya titreşimler kullanır.

  • Bildirim kanalı, Android 8.0 (API düzeyi 26) ve sonraki sürümleri çalıştıran cihazlarda yüksek öneme sahiptir.

Kilit ekranı

Android 5.0 sürümünden itibaren bildirimler kilit ekranında görünebilir.

Uygulamanız tarafından yayınlanan bildirimlerin güvenli bir kilit ekranında gösterilip gösterilmeyeceğini ve gösteriliyorsa görünür ayrıntı düzeyini programatik olarak ayarlayabilirsiniz.

Kullanıcılar, kilit ekranı bildirimlerinde görünecek ayrıntı düzeyini seçmek veya tüm kilit ekranı bildirimlerini devre dışı bırakmak için sistem ayarlarını kullanabilirler. Android 8.0 sürümünden başlayarak, kullanıcılar her bir bildirim kanalı için kilit ekranı bildirimlerini devre dışı bırakabilir veya etkinleştirebilirler.

4.Şekil Kilit ekranında hassas içeriğin gizlendiği bildirimler.

Daha fazla bilgi edinmek için Kilit ekranı görünürlüğünü ayarlama konusuna bakın.

Uygulama simgesi rozeti

Android 8.0 (API düzeyi 26) ve sonraki sürümleri çalıştıran cihazlardaki desteklenen başlatıcılarda, uygulama simgeleri yeni bildirimleri, ilgili uygulama başlatıcı simgesi üzerinde bildirim noktası olarak bilinen renkli bir rozetle belirtir.

Kullanıcılar, bir uygulamanın bildirimlerini görmek için uygulama simgesine dokunup basılı tutabilirler. Kullanıcılar, bildirim çekmecesine benzer şekilde bu menüden bildirimleri kapatabilir veya bildirimlerle ilgili işlem yapabilir.

5. Şekil. Bildirim rozetleri ve dokunup basılı tutma menüsü.

Rozetlerin işleyiş şekli hakkında daha fazla bilgi edinmek için Bildirim rozetini değiştirme konusunu okuyun.

Wear OS cihazlar

Kullanıcının eşlenmiş bir Wear OS cihazı varsa genişletilebilir ayrıntılar ve işlem düğmeleri dahil tüm bildirimleriniz burada otomatik olarak görünür.

Giyilebilir cihazlarda bildirimlerinizin görünümünü özelleştirebilir, önerilen yanıtlar ve ses girişi yanıtları da dahil olmak üzere farklı işlemler sağlayarak deneyimi geliştirebilirsiniz. Daha fazla bilgi için bildiriminize giyilebilir cihazlara özgü özellikleri nasıl ekleyebileceğinizi öğrenin.

6. Şekil. Bildirimler, eşlenen bir Wear OS cihazda otomatik olarak görünür.

Bildirim anatomisi

Bir bildirimin tasarımı, sistem şablonlarına göre belirlenir ve uygulamanız şablonun her bölümünün içeriğini tanımlar. Bildirimin bazı ayrıntıları yalnızca genişletilmiş görünümde görünür.

Şekil 7. Temel ayrıntıları içeren bir bildirim.

Bildirimlerin en yaygın kısımları Şekil 7'de aşağıdaki gibi belirtilmiştir:

  1. Küçük simge: Zorunlu; setSmallIcon() ile ayarlayın.
  2. Uygulama adı: Sistem tarafından sağlanır.
  3. Zaman damgası: sistem tarafından sağlanır ancak setWhen() kullanarak geçersiz kılabilir veya setShowWhen(false) ile gizleyebilirsiniz.
  4. Büyük simge: isteğe bağlı; genellikle yalnızca kişi fotoğrafları için kullanılır. Uygulama simgeniz için kullanmayın. setLargeIcon() kullanarak ayarlayın.
  5. Başlık: İsteğe bağlı; setContentTitle() ile ayarlayın.
  6. Metin: isteğe bağlı; setContentText() ile ayarlayın.

Tüm cihazlarda doğru tasarım uyumluluğu için sistem şablonlarını kullanmanızı önemle tavsiye ederiz. Gerekirse özel bir bildirim düzeni oluşturabilirsiniz.

Bu özelliklerle bildirim oluşturma ve daha fazlası hakkında bilgi edinmek için Bildirim oluşturma konusunu okuyun.

Bildirim işlemleri

Zorunlu olmamakla birlikte, her bildirimin dokunduğunuzda uygun bir uygulama etkinliğini açması iyi bir uygulamadır. Bu varsayılan bildirim işlemine ek olarak, uygulama ile ilgili bir görevi bildirimden (genellikle bir etkinlik açmadan) tamamlayan işlem düğmelerini Şekil 8'de gösterildiği gibi ekleyebilirsiniz.

8. Şekil. İşlem düğmeleri bulunan bir bildirim.

Android 7.0 (API düzeyi 24) sürümünden itibaren, doğrudan bildirimden mesajları yanıtlamak veya başka bir metin girmek için bir işlem ekleyebilirsiniz.

Platform, Android 10'dan (API düzeyi 29) başlayarak, önerilen amaca dayalı işlemleri içeren işlem düğmelerini otomatik olarak oluşturabilir.

İşlem düğmelerinin eklenmesi Bildirim oluşturma konusunda daha ayrıntılı bir şekilde açıklanmaktadır.

Kilidi açılmış cihazı zorunlu kılma

Kullanıcılar cihazın kilit ekranında bildirim işlemleri görebilir. Bir bildirim işlemi, uygulamanın bir etkinlik başlatmasına veya doğrudan yanıt göndermesine neden oluyorsa uygulamanın bu bildirim işlemini çağırabilmesi için kullanıcıların cihazın kilidini açması gerekir.

Android 12 (API düzeyi 31) ve sonraki sürümlerde, işlemin başlattığı iş akışından bağımsız olarak, uygulamanızın bu işlemi çağırması için cihazın kilidinin açılması gerektiğine dair bir bildirim işlemi yapılandırabilirsiniz. Bu seçenek, kilitli cihazlardaki bildirimlere ekstra bir güvenlik katmanı ekler.

Uygulamanız belirli bir bildirim işlemini çağırmadan önce bir cihazın kilidinin açılmasını zorunlu kılmak için bildirim işleminizi oluştururken aşağıdaki kod snippet'inde gösterildiği gibi true öğesini setAuthenticationRequired() öğesine iletin:

Kotlin

val moreSecureNotification = Notification.Action.Builder(...)

    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build()

Java

Notification moreSecureNotification = new Notification.Action.Builder(...)

    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build();

Genişletilebilir bildirim

Varsayılan olarak, bildirimin metin içeriği bir satıra sığacak şekilde kesilir. Bildiriminizin daha uzun olmasını isterseniz Şekil 9'da gösterildiği gibi, ek bir şablon uygulayarak genişletilebilir, daha büyük bir metin alanını etkinleştirebilirsiniz.

9. Şekil. Büyük metin için genişletilebilir bir bildirim.

Ayrıca, gelen kutusu stilinde, resim içeren, sohbet görüşmesi içeren veya medya oynatma kontrollerine sahip genişletilebilir bir bildirim de oluşturabilirsiniz. Daha fazla bilgi için Genişletilebilir bildirim oluşturma bölümünü okuyun.

Bildirim güncellemeleri ve grupları

Ek güncellemeleriniz olduğunda kullanıcılarınızı birden fazla veya gereksiz bildirimle doldurmamak için yeni bir bildirim yayınlamak yerine mevcut bir bildirimi güncelleyin veya ileti dizisi güncellemelerini göstermek için gelen kutusu stilindeki bildirimi kullanın.

Bununla birlikte, birden fazla bildirim gönderilmesi gerekiyorsa Android 7.0 ve sonraki sürümlerde kullanılabilen bu ayrı bildirimleri bir grup halinde gruplandırmayı düşünebilirsiniz.

Bildirim grubu, bildirim çekmecesinde birden fazla bildirimi özet içeren tek bir yayın olacak şekilde daraltmanıza olanak tanır. Kullanıcı, şekil 10'da gösterildiği gibi, daha fazla ayrıntı için bildirim grubunu ve içindeki her bir bildirimi kademeli olarak genişletebilir.

Şekil 10. Daraltılmış ve genişletilmiş bir bildirim grubu.

Bir gruba nasıl bildirim ekleyeceğinizi öğrenmek için Bildirim grubu oluşturma konusuna bakın.

Bildirim kanalları

Android 8.0 (API düzeyi 26) sürümünden itibaren, tüm bildirimlerin bir kanala atanması gerekir. Aksi takdirde bildirimler gösterilmez. Bu sayede kullanıcılar, tüm bildirimlerinizi devre dışı bırakmak yerine uygulamanız için belirli bildirim kanallarını devre dışı bırakabilir. Kullanıcılar, Şekil 11'de gösterildiği gibi her bir kanal için görsel ve işitsel seçenekleri Android sistem ayarlarından kontrol edebilirler. Kullanıcılar, bir bildirime dokunup basılı tutarak ilişkilendirilmiş kanalın davranışlarını da değiştirebilir.

Android 7.1 (API düzeyi 25) ve önceki sürümleri çalıştıran cihazlarda kullanıcılar bildirimleri yalnızca uygulama bazında yönetebilir. Her uygulamanın Android 7.1 ve önceki sürümlerinde fiilen tek bir kanalı vardır.

Şekil 11. Saat uygulaması ve kanallarından biri için bildirim ayarları.

Bir uygulamanın, uygulamanın yayınladığı her bildirim türü için ayrı kanalları olabilir. Uygulamalar, kullanıcıların seçimlerine yanıt olarak bildirim kanalları da oluşturabilir. Örneğin, bir kullanıcı tarafından bir mesajlaşma uygulamasında oluşturulan her görüşme grubu için ayrı bildirim kanalları oluşturabilirsiniz.

Android 8.0 ve sonraki sürümlerde, kanal, aynı zamanda bildirimlerinizin önem düzeyini belirttiğiniz yerdir. Böylece aynı bildirim kanalında yayınlanan tüm bildirimler aynı davranışa sahip olur. Bu, aşağıdaki bölümde açıklanmıştır.

Daha fazla bilgi için Bildirim kanalları oluşturma ve yönetme konusuna bakın.

Bildirimlerin önemi

Android, bir bildirimin kullanıcıyı görsel ve işitsel olarak ne kadar rahatsız ettiğini belirlemek için bildirimin önem değerini kullanır. Bir bildirimin önem derecesi ne kadar yüksekse bildirim o kadar rahatsız edici olur.

Android 7.1 (API düzeyi 25) ve önceki sürümlerde bir bildirimin önemi, bildirimdeki priority ile belirlenir.

Android 8.0 (API düzeyi 26) ve sonraki sürümlerde bir bildirimin önemi, bildirimin yayınlandığı kanalın importance ayarına göre belirlenir. Kullanıcılar, Şekil 12'de gösterildiği gibi, sistem ayarlarında bildirim kanalının önemini değiştirebilirler.

Şekil 12. Android 8.0 ve sonraki sürümlerde kullanıcılar her kanalın önemini değiştirebilir.

Olası önem düzeyleri ve ilişkili bildirim davranışları aşağıdaki gibidir:

  • Acil: Ses çıkar ve uyarı bildirimi olarak görünür.

  • Yüksek: Ses çıkarır.

  • Orta: Ses çıkarmaz.

  • Düşük: Ses çıkarmaz ve durum çubuğunda görünmez.

Önem derecelerinden bağımsız olarak tüm bildirimler, bildirim çekmecesi ve başlatıcı simgesinde bir rozet gibi kesintiye uğramayan sistem kullanıcı arayüzü konumlarında görünür. Ancak bildirim rozetinin görünümünü değiştirebilirsiniz.

Daha fazla bilgi için önemi ayarlama bölümünü okuyun.

Rahatsız Etmeyin modu

Android 5.0 (API düzeyi 21) sürümünden başlayarak, kullanıcılar tüm bildirimler için sesi ve titreşimi kapatan Rahatsız Etmeyin modunu etkinleştirebilirler. Kullanıcı aksini belirtmedikçe bildirimler sistem kullanıcı arayüzünde normal şekilde görünmeye devam eder.

Rahatsız Etmeyin modunda üç düzey vardır:

  • Tam sessizlik: Alarmlar, müzik, videolar ve oyunlar da dahil olmak üzere tüm sesleri ve titreşimleri engeller.
  • Yalnızca alarmlar: Alarmlar dışındaki tüm sesleri ve titreşimleri engeller.
  • Yalnızca öncelikliler: Kullanıcılar, sistem genelinde hangi kategorilerin (ör. alarmlar, hatırlatıcılar, etkinlikler, aramalar veya mesajlar) çalışmasını kesintiye uğratabileceğini yapılandırabilir. Mesajlar ve çağrılar için kullanıcılar, Şekil 13'te gösterildiği gibi gönderene veya arayana göre filtreleme yapabilir.

Şekil 13. Kullanıcılar, sistem genelindeki kategorilere (solda) ve gönderene veya arayana (sağda) göre bildirimlere izin verebilirler.

Android 8.0 (API düzeyi 26) ve sonraki sürümlerde kullanıcılar, Rahatsız Etmeyin modunu kanal bazında geçersiz kılarak uygulamaya özgü kategoriler (kanallar olarak da bilinir) aracılığıyla bildirimlere izin verebilirler. Örneğin, bir ödeme uygulamasında para çekme ve para yatırma işlemleriyle ilgili bildirimler için kanallar bulunabilir. Kullanıcı, öncelikli modda para çekme bildirimlerine, para yatırma bildirimlerine veya her ikisine birden izin verebilir.

Android 7.1 (API düzeyi 25) ve önceki sürümleri çalıştıran cihazlarda kullanıcılar, bildirimlere kanal bazında değil, uygulama bazında izin verebilirler.

Bu kullanıcı ayarları için bildirimlerinizi yapılandırmak üzere sistem genelinde bir kategori ayarlamanız gerekir.

Ön plan hizmetleri için bildirimler

Uygulamanız bir ön plan hizmetini (ör. medya oynatıcı gibi) arka planda uzun süre çalışan ve kullanıcının fark edebileceği bir Service çalıştırırken bildirim gerekir. Bu bildirim, diğer bildirimler gibi kapatılamaz. Bildirimi kaldırmak için hizmetin durdurulması veya ön plan durumundan kaldırılması gerekir.

Daha fazla bilgi için Ön plan hizmetleri bölümünü okuyun. Medya oynatıcı oluşturuyorsanız Arka planda medya oynatma bölümünü de okuyun.

Yayın sınırları

Android 8.1 (API düzeyi 27) sürümünden itibaren, uygulamalar saniyede bir defadan fazla bildirim sesi çıkaramaz. Uygulamanız bir saniyede birden fazla bildirim yayınlarsa bunların tümü beklendiği gibi görünür ancak saniyede yalnızca ilk bildirim bir ses çıkarır.

Bununla birlikte, Android bir bildirimi güncellerken hız sınırlaması da uygular. Tek bir bildirim için çok sık güncelleme yayınlarsanız (örneğin, bir saniyeden kısa bir süre içinde çok sayıda) sistem güncellemeleri bırakabilir.

Bildirim uyumluluğu

Android bildirim sistemi kullanıcı arayüzü ve bildirimle ilgili API'ler sürekli olarak değişir. Eski cihazları desteklerken en yeni bildirim API özelliklerini kullanmak için Support Library bildirim API'si NotificationCompat, alt sınıfları ile NotificationManagerCompat'ı kullanın. Böylece, API düzeylerini kontrol etmek için koşullu kod yazmak zorunda kalmazsınız, çünkü bu API'ler bunu halleder.

NotificationCompat, platform en yeni yöntemleri içerecek şekilde geliştikçe güncellenir. Ancak bir yöntemin NotificationCompat bölgesinde kullanılabilir olması, ilgili özelliğin daha eski cihazlarda sağlanacağını garanti etmez. Bazı durumlarda, yeni kullanıma sunulan bir API'nin çağrılması eski cihazlarda herhangi bir işlemin yapılmamasına neden olur.

Aşağıda, Android bildirimleri için API düzeyine göre en dikkat çekici davranış değişikliklerinin bir özeti verilmiştir.

Android 5.0, API düzeyi 21

  • Kilit ekranı ve uyarı bildirimleri sunar.

  • Kullanıcının telefonu Rahatsız Etmeyin moduna ayarlamasına ve cihaz yalnızca öncelikli moddayken hangi bildirimlerin onları kesintiye uğratmasına izin verileceğini yapılandırmasına olanak tanır.

  • Bir bildirimin kilit ekranında görüntülenip görüntülenmeyeceğini (ör. setVisibility()) ayarlama ve bildirim metninin "herkese açık" sürümünü belirtme yöntemleri ekler.

  • Sisteme bildirimin ne kadar kesintiye uğradığını bildiren setPriority() yöntemi ekler. Örneğin, önceliğin yüksek olarak ayarlanması, bildirimin uyarı bildirimi olarak görünmesini sağlar.

  • Android Wear (artık Wear OS olarak adlandırılıyor) cihazlarına bildirim yığınları desteği ekler. setGroup() kullanarak bildirimleri bir gruba yerleştirin. Daha sonra grup veya paket olarak bilinen bildirim yığınları, Android 7.0 (API düzeyi 24) sürümüne kadar tabletlerde veya telefonlarda desteklenmez.

Android 7.0, API düzeyi 24

  • Lokomotif resmi ve avatarı vurgulamak için bildirim şablonlarını yeniden biçimlendirir.

  • Üç bildirim şablonu ekler: biri mesajlaşma uygulamaları, diğer ikisi genişletilebilir ürün ve diğer sistem süslemeleriyle özel içerik görünümlerini süslemek.

  • Bildirim grupları için telefon ve tablet gibi avuç içi cihazlara destek ekler. Android 5.0'da (API düzeyi 21) kullanıma sunulan Android Wear (yeni adıyla Wear OS) bildirim yığınlarıyla aynı API'yi kullanır.

  • Kullanıcıların satır içi yanıtı kullanarak bir bildirim içinde yanıt vermesine olanak tanır. Kullanıcılar metin girebilir. Bu metin daha sonra bildirimin üst uygulamasına yönlendirilir.

Android 8.0, API düzeyi 26

  • Bağımsız bildirimlerin belirli bir kanala yerleştirilmesini sağlar.

  • Kullanıcıların bir uygulamadan gelen tüm bildirimleri kapatmak yerine bildirimleri kanal bazında kapatmasına olanak tanır.

  • Etkin bildirimleri olan uygulamaların, ana ekran veya başlatıcı ekranında uygulama simgesinin üzerinde bir bildirim rozeti görüntülemesini sağlar.

  • Kullanıcıların, çekmecedeki bir bildirimi ertelemesine olanak tanır. Bir bildirim için otomatik zaman aşımı ayarlayabilirsiniz.

  • Bildirimin arka plan rengini ayarlayabilmenizi sağlar.

  • Bildirim davranışlarıyla ilgili bazı API'leri Notification yerine NotificationChannel olarak taşır. Örneğin, Android 8.0 ve sonraki sürümlerde NotificationCompat.Builder.setPriority() yerine NotificationChannel.setImportance() değerini kullanın.

Android 13.0, API düzeyi 33

Android 14.0, API düzeyi 34

  • Tam ekran intent bildirimlerini, arama ve alarm sağlayan uygulamalarla sınırlandırır. Uygulamanızın izni olup olmadığını kontrol etmek için NotificationManager.canUseFullScreenIntent API'yi kullanın. İzin verilmezse uygulamanız, kullanıcıların izin verebileceği ayarlar sayfasını başlatmak için ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT aracını kullanabilir.

  • Notification.FLAG_ONGOING_EVENT işareti ayarlanmış olsa bile kullanıcıların bildirim işlemini kapatmasına izin vererek kullanıcıların kapatılamayan bildirimler kullanma şeklini değiştirir. Bu, Notification.FLAG_ONGOING_EVENT işareti ayarlanmışsa CallStyle bildirimleri veya Cihaz politikası denetleyici (DPC) ve kuruluş için destek paketleri için geçerli değildir. Bu durum, telefon kilitliyken veya kullanıcı Tümünü temizle'yi seçtiğinde de geçerli değildir.