Bildirimlere genel bakış

Bildirim, Android'in kullanıcıya hatırlatıcıları, diğer kullanıcıların iletişimlerini veya uygulamanızdan belirli bir zamanı kapsayan başka bilgiler 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 veya doğrudan bildirim üzerinden bir işlem gerçekleştirmek için bildirime dokunabilirler.

Bu sayfada, bildirimlerin nerede göründüğüne ve kullanılabilir özelliklere dair genel bir bakış sunulmaktadır. 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çimlerde kullanıcılara otomatik olarak gösterilir. Durum çubuğunda bir simge, bildirim çekmecesinde daha ayrıntılı bir giriş ve uygulamanın simgesinde bir rozet olarak bir bildirim görünür. Bildirimler, eşlenmiş giyilebilir cihazlarda da görünür.

Durum çubuğu ve bildirim çekmecesi

Bir bildirim gönderdiğinizde, bu 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, durum çubuğunu aşağı kaydırarak bildirim çekmecesini açabilir. Burada daha fazla ayrıntı görebilir ve bildirimle işlem gerçekleştirebilirler.

Şekil 2. 'ı tıklayın.

Kullanıcılar, ek içerik ve işlem düğmeleri (mevcutsa) gösteren genişletilmiş görünümü açmak için çekmecedeki bir bildirimi aşağı sürükleyebilirler. Android 13'ten itibaren bu genişletilmiş görünüm, kullanıcıların devam eden ön plan hizmetleri olan bir uygulamayı durdurmasına olanak tanıyan bir düğme içerir.

Bir bildirim, uygulama veya kullanıcı tarafından kapatılıncaya 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 süreliğine görünebilir. Bu davranış normalde kullanıcının hemen bilmesi gereken önemli bildirimler için gerçekleştirilir ve yalnızca cihazın kilidi açıkken görünür.

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

Uyarı bildirimi, uygulamanız bildirim yayınladığında görünür. Kısa 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 kullandığında).

  • 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 önem düzeyine 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örünürse 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ı kullanabilir. 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ştirebilir.

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 başlıklı makaleye 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ı simgesinde bildirim noktası olarak bilinen renkli bir rozet ile belirtir.

Kullanıcılar bir uygulama simgesine dokunup basılı tutarak bir uygulamanın bildirimlerini görebilir. Kullanıcılar, bildirim çekmecesine benzer şekilde bu menüden bildirimleri kapatabilir veya bildirimlerde işlem yapabilirler.

5. Şekil. Bildirim rozetleri ile 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ı ve işlem düğmeleri de dahil olmak üzere tüm bildirimleriniz burada otomatik olarak görünür.

Giyilebilir cihazlarda bildirimlerinizin görünümünü özelleştirerek ve önerilen yanıtlar ve ses girişi yanıtları gibi farklı işlemler sağlayarak daha iyi bir deneyim sunabilirsiniz. Daha fazla bilgi için bildiriminize giyilebilir cihazlara özgü özellikleri nasıl ekleyebileceğinizi öğrenin.

6. Şekil. Bildirimler, eşlenmiş bir Wear OS cihazda otomatik olarak gösterilir.

Bildirim anatomisi

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

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

Bir bildirimin en yaygın bölümleri Şekil 7'de şu şekilde belirtilmiştir:

  1. Küçük simge: Zorunlu; setSmallIcon() kullanarak ayarlayın.
  2. Uygulama adı: Sistem tarafından sağlanır.
  3. Zaman damgası: sistem tarafından sağlanır ancak setWhen() ile geçersiz kılabilir veya setShowWhen(false) ile gizleyebilirsiniz.
  4. Büyük simge: İsteğe bağlıdır. 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() kullanılarak ayarlayın.
  6. Metin: İsteğe bağlı. setContentText() kullanarak ayarlayın.

Tüm cihazlarda uygun 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 dokunulduğunda uygun bir uygulama etkinliğinin açılması iyi bir uygulamadır. Bu varsayılan bildirim işlemine ek olarak, uygulamayla ilgili bir görevi (genellikle bir etkinlik açmadan) bildirimden tamamlayan işlem düğmeleri ekleyebilirsiniz. Şekil 8'de gösterildiği gibi.

8. Şekil. İşlem düğmelerine sahip bir bildirim.

Android 7.0 (API düzeyi 24) sürümünden başlayarak, 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) itibaren ö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 biçimde açıklanmaktadır.

Kilidi açılmış cihaz gerektir

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 olursa uygulamanın bu bildirim işlemini çağırabilmesi için önce kullanıcıların cihazın kilidini açması gerekir.

Android 12 (API düzeyi 31) ve sonraki sürümlerde bir bildirim işlemi yapılandırabilirsiniz. Böylece, işlemin başlattığı iş akışı fark etmeksizin uygulamanızın bu işlemi başlatabilmesi için cihazın kilidinin açılması gerekir. Bu seçenek, kilitli cihazlardaki bildirimlere fazladan 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 veya medya oynatma denetimleriyle genişletilebilir bildirim oluşturabilirsiniz. Daha fazla bilgi için Genişletilebilir bildirim oluşturma konusunu okuyun.

Bildirim güncellemeleri ve grupları

Ek güncellemeleriniz olduğunda kullanıcılarınızı birden fazla veya gereksiz bildirimlere maruz bırakmamak 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.

Ancak, birden çok bildirimin gönderilmesi gerekiyorsa ayrı bildirimleri, Android 7.0 ve sonraki sürümlerde kullanılabilen bir grup altında gruplandırabilirsiniz.

Bildirim grubu, birden fazla bildirimi bildirim çekmecesinde özet içeren tek bir yayına daraltmanıza olanak tanır. Kullanıcı, şekil 10'da gösterildiği gibi, daha fazla ayrıntı için bildirim grubunu ve bildirim grubunu 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 başlayarak, tüm bildirimlerin bir kanala atanması gerekir; aksi takdirde bildirimler görünmez. Bu, kullanıcıların tüm bildirimlerinizi devre dışı bırakmak yerine uygulamanız için belirli bildirim kanallarını devre dışı bırakmalarına olanak tanır. Kullanıcılar, her kanal için görsel ve işitsel seçenekleri Şekil 11'de gösterildiği gibi Android sistem ayarlarından kontrol edebilirler. Kullanıcılar bildirime dokunup basılı tutarak ilişkilendirilmiş kanalın davranışlarını da değiştirebilirler.

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. Android 7.1 ve önceki sürümlerde her uygulamanın etkin bir şekilde yalnızca 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. Bir uygulama, kullanıcıların yaptığı seçimlere yanıt olarak bildirim kanalları da oluşturabilir. Örneğin, bir kullanıcının bir mesajlaşma uygulamasında oluşturduğu her görüşme grubu için ayrı bildirim kanalları oluşturabilirsiniz.

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

Daha fazla bilgi için Bildirim kanalları oluşturma ve yönetme bölümünü inceleyin.

Bildirimlerin önemi

Android, bir bildirimin kullanıcıyı görsel ve işitsel olarak ne kadar kesintiye uğrattığını belirlemek için bildirimin önem değerini kullanır. Bir bildirimin önem derecesi ne kadar yüksek olursa bildirimin çalışmayı o kadar fazla kesintiye uğratması sağlanır.

Android 7.1 (API düzeyi 25) ve önceki sürümlerde bir bildirimin önemi, bildirimin priority değerine göre belirlenir.

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

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

Olası önem düzeyleri ve ilişkili bildirim davranışları şunlardır:

  • Acil: Bir ses çıkarır 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.

Önemlerine bakılmaksızın tüm bildirimler, bildirim çekmecesi gibi sistemde çalışmayan kullanıcı arayüzü konumlarında ve başlatıcı simgesinde rozet olarak 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 arayüzünde normal şekilde görünmeye devam eder.

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

  • Tamamen sessiz: 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, yalnızca alarmlar, hatırlatıcılar, etkinlikler, çağrılar veya mesajlar gibi sistem genelinde hangi kategorilerin kendilerini 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önderen veya arayana (sağda) göre bildirimlere izin verebilir.

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 özel kategoriler (kanal olarak da bilinir) için 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 moddayken 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 çalıştırırken bir bildirim gerekir. Bu hizmet, medya oynatıcı gibi arka planda uzun süre çalışan ve kullanıcının fark edebileceği bir Service öğesidir. 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. Bir medya oynatıcı oluşturuyorsanız Arka planda medya oynatma konusunu da 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 bu bildirimlerin tümü beklendiği gibi görünür ancak her 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 bildirime çok sık güncelleme yayınlarsanız (örneğin, bir saniyeden kısa bir süre içinde çok sayıda güncelleme yayınlarsanız) sistem güncellemeleri devre dışı bırakabilir.

Bildirim uyumluluğu

Android bildirim sistemi kullanıcı arayüzü ve bildirimle ilgili API'ler sürekli olarak gelişir. Eski cihazları desteklerken en yeni Notification API özelliklerini kullanmak için Support Library bildirim API'si NotificationCompat ile alt sınıflarının yanı sıra NotificationManagerCompat'ı kullanın. Bu API'ler işleyebildiğinden, API düzeylerini kontrol etmek için koşullu kod yazmaktan kaçınmanızı sağlar.

Platform, en yeni yöntemleri içerecek şekilde geliştikçe NotificationCompat güncellenir. Ancak bir yöntemin NotificationCompat için mevcut 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 önemli davranış değişikliklerinin bir özeti verilmiştir.

Android 5.0, API düzeyi 21

  • Kilit ekranı ve uyarı bildirimlerini kullanıma sunar.

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

  • Bir bildirimin kilit ekranında gösterilip gösterilmeyeceğini (setVisibility() gibi) ayarlamak ve bildirim metninin "herkese açık" sürümünü belirtmek için yöntemler ekler.

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

  • Android Wear (yeni adıyla Wear OS) cihazlara bildirim grubu desteği eklendi. setGroup() kullanarak bildirimleri bir yığına 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

  • Bildirim şablonlarını, hero resmi ve avatarı vurgulayacak şekilde yeniden biçimlendirir.

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

  • Telefon ve tablet gibi elde kullanılan cihazlarda bildirim grupları için destek ekler. Android 5.0 (API düzeyi 21) sürümünde 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 bildirimin içinde yanıt vermesine olanak tanır. Kullanıcı metin girebilir ve ardından, bildirimin üst uygulamasına yönlendirilir.

Android 8.0, API düzeyi 26

  • Tekil bildirimlerin belirli bir kanala yerleştirilmesini sağlar.

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

  • Etkin bildirimleri olan uygulamaların, ana sayfa veya başlatıcı ekranındaki uygulama simgesinin üstünde bir bildirim rozeti görüntülemelerini 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 öğesinden NotificationChannel konumuna taşır. Örneğin, Android 8.0 ve sonraki sürümlerde NotificationCompat.Builder.setPriority() yerine NotificationChannel.setImportance() kullanın.

Android 13.0, API düzeyi 33

Android 14.0, API düzeyi 34

  • Tam ekran intent bildirimlerini, çağrı 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. Aksi takdirde 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 bayrağı ayarlı olsa bile kullanıcıların bildirim işlemini kapatmasına izin vererek kapatılamayan bildirimlerle ilgili kullanıcı deneyimini değiştirir. Bu durum, Notification.FLAG_ONGOING_EVENT işareti ayarlanmışsa veya Cihaz politikası denetleyici (DPC) ve kuruluşlara yönelik destekleyici paketlerse CallStyle bildirimleri 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.