Bildirimlere Genel Bakış

Bildirim, Android'in kullanıcıya hatırlatıcıları, diğer kullanıcıların iletişimlerini veya zamanında uygulamanızdan gelen diğer bilgileri sağlamak için uygulamanızın kullanıcı arayüzü dışında gösterdiği mesajdır. Kullanıcılar, bildirime dokunarak uygulamanızı açabilir veya bir işlemi doğrudan bildirimden gerçekleştirebilirler.

Bu sayfada bildirimlerin göründükleri yerler ve kullanabileceğiniz özellikleriyle ilgili genel bir bakış sunulmaktadır. Bildirimlerinizi oluşturmaya başlamak istiyorsanız, bunun yerine Bildirim Oluşturma konusunu okuyun.

Tasarım ve etkileşim kalıpları hakkında daha fazla bilgi için Bildirim tasarım kılavuzu dokümanına bakın. Buna ek olarak, mobil uygulamalarda ve giyilebilir cihaz uygulamalarında Notification.Style API'sini kullanmayla ilgili en uygulamaların gösterimi için Android Bildirimleri Örneği konusuna bakın.

Cihazlardaki görünümler

Bildirimler, durum çubuğunda bir simge, bildirim çekmecesinde daha ayrıntılı bir giriş, uygulama simgesi üzerinde bir rozet biçiminde ve eşlenmiş bir giyilebilir cihazda otomatik olarak farklı konumlarda ve şekillerde görünür.

Durum çubuğu ve bildirim çekmecesi

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

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

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

Şekil 2. Bildirim çekmecesindeki bildirimler

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.

Bildirimler, uygulama veya kullanıcı tarafından kapatılıncaya kadar bildirim çekmecesinde görünmeye devam eder.

Uyarı bildirimi

Android 5.0 sürümünden itibaren bildirimler kısa bir süre için uyarı bildirimi adı verilen kayan bir pencerede gösterilmeye başlanmıştır. Bu davranış normalde kullanıcının hemen bilmesi gereken ve yalnızca cihazın kilidi açıkken görünen önemli bildirimler için kullanılmaktadır.

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

Uyarı bildirimi, uygulamanızın bildirimi yayınladığı anda görünür ve kısa bir süre sonra kaybolur ancak bildirim, bildirim çekmecesinde her zaman olduğu gibi görünür durumda kalır.

Uyarı bildirimlerini tetikleyebilecek örnek koşullar aşağıdakileri içerir:

  • Kullanıcının etkinliği tam ekran modundadır (uygulama fullScreenIntent kullanmaktadır).
  • Bildirim yüksek önceliğe sahiptir ve Android 7.1 (API seviyesi 25) ve önceki sürümlerini çalıştıran cihazlarda zil sesleri veya titreşimler kullanmaktadır.
  • Bildirim kanalı, Android 8.0 (API seviyesi 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ın güvenli bir kilit ekranında yayınladığı bildirimlerde gösterilen ayrıntı düzeyini, hatta bildirimin kilit ekranında gösterilip gösterilmeyeceğini bile programatik olarak ayarlayabilirsiniz.

Kullanıcılar, tüm kilit ekranı bildirimlerini devre dışı bırakma seçeneği de dahil olmak üzere kilit ekranı bildirimlerinde gösterilecek ayrıntı düzeyini seçmek 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ırakmayı veya etkinleştirmeyi seçebilirler.

Şekil 4. Hassas içeriğe sahip kilit ekranında gizlenen bildirimler

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

Uygulama simgesi rozeti

Android 8.0 (API seviyesi 26) ve sonraki sürümlerini çalıştıran cihazlardaki desteklenen başlatıcılarda, uygulama simgeleri, yeni bildirimleri ilgili uygulama başlatıcı simgesinde renkli bir "rozet" ("bildirim noktası" olarak da bilinir) ile belirtir.

Kullanıcılar, söz konusu uygulamanın bildirimlerini görmek için bir uygulama simgesine uzun basabilirler. Kullanıcılar, daha sonra bildirim çekmecesine benzer şekilde, bu menüdeki bildirimleri kapatabilir veya bildirimlerden işlem yapabilirler.

Şekil 5. Bildirim rozetleri ve uzun basma menüsü

Rozetlerin işleyiş şekli hakkında daha fazla bilgi edinmek için Bildirim rozetleri 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 söz konusu cihazda otomatik olarak görünür.

Giyilebilir cihazlarda bildirimin bazı görünümlerini özelleştirerek deneyimi geliştirebilir ve önerilen yanıtlar ve ses girişiyle yanıtlar da dahil olmak üzere farklı işlemler sağlayabilirsiniz. Daha fazla bilgi için bildiriminize giyilebilir cihazlara özel özellikleri nasıl ekleyebileceğinizi öğrenin.

Şekil 6. Bildirimler eşlenmiş bir Wear OS cihazında otomatik olarak görünür

Bildirim anatomisi

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

Şekil 7. Temel ayrıntılara sahip bir bildirim

Bildirimlerin en yaygın kısımları Şekil 7'de şu şekilde belirtilmiştir:

  1. Küçük simge: Bu kısım gereklidir ve setSmallIcon() ile ayarlanır.
  2. Uygulama adı: Bu bilgi sistem tarafından sağlanır.
  3. Zaman damgası: Bu bilgi sistem tarafından sağlanır ancak setWhen() ile geçersiz kılınabilir veya setShowWhen(false) ile gizlenebilir.
  4. Büyük simge: Bu kısım isteğe bağlıdır (genellikle yalnızca kişi fotoğrafları için kullanılır; uygulamanızın simgesi için kullanmayın) ve setLargeIcon() ile ayarlanır.
  5. Başlık: Bu kısım isteğe bağlıdır ve setContentTitle() ile ayarlanır.
  6. Metin: Bu kısım isteğe bağlıdır ve setContentText() ile ayarlanır.

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 bildirim dokunulduğunda uygun bir uygulama etkinliğini açmalıdır. Bu varsayılan bildirim işlemine ek olarak, uygulama ile ilgili bir görevi (genellikle bir etkinlik açmadan) bildirimden tamamlayan işlem düğmelerini şekil 9'da gösterildiği gibi ekleyebilirsiniz.

Şekil 9. İş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 de ekleyebilirsiniz.

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

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 8'de gösterildiği gibi ek bir şablon uygulayarak genişletilebilir, daha büyük bir metin alanını etkinleştirebilirsiniz.

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

Ayrıca, gelen kutusu stilinde, bir resme, sohbet ileti dizisine veya medya oynatma denetimlerine sahip genişletilebilir bildirim oluşturabilirsiniz. Daha fazla bilgi için Genişletilebilir Bildirim Oluşturma konusunu okuyun.

Tüm cihazlarda doğru bir tasarım uyumluluğu sağlamak için her zaman bu şablonları kullanmanızı önersek de, gerekirse özel bir bildirim düzeni oluşturabilirsiniz.

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üncelleme ya da ileti dizisi güncellemeleri göstermek için gelen kutusu stilindeki bildirimi kullanma seçeneğini değerlendirebilirsiniz.

Bununla birlikte, birden fazla bildirimin sağlanması gerekiyorsa bu ayrı bildirimleri bir grupta gruplandırma seçeneğini değerlendirmeniz gerekir (bu özellik, Android 7.0 ve sonraki sürümlerde mevcuttur). Bildirim grubu, birden fazla bildirimi, bildirim çekmecesinde özet içeren tek bir yayına daraltmanıza olanak tanır. Kullanıcı, daha sonra her bir bildirimin ayrıntılarını göstermek için bildirimi genişletebilir.

Kullanıcı, daha fazla ayrıntı için bildirim grubunu ve içindeki her bir bildirimi aşamalı olarak genişletebilir.

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

Bir gruba nasıl bildirim ekleneceğini öğ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, bildirim görüntülenmez. Bildirimlerin kanallar halinde kategorilere ayrılmasıyla, kullanıcılar uygulamanız için belirli bildirim kanallarını devre dışı bırakabilirler (tüm bildirimlerinizi devre dışı bırakmazlar) ve her bir kanalın hem görsel hem de işitsel seçeneklerini tamamıyla Android sistem ayarlarından kontrol edebilirler (Şekil 11). Ayrıca kullanıcılar, ilgili kanalın davranışlarını değiştirmek için bir bildirime uzun basabilirler.

Android 7.1 (API düzeyi 25) ve önceki sürümlerini çalıştıran cihazlarda, kullanıcılar bildirimleri yalnızca uygulama temelinde yönetebilirler (Android 7.1 ve önceki sürümlerde her bir uygulamanın etkin bir şekilde tek bir kanalı vardır).

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

Bir uygulamanın birden fazla bildirim kanalı; diğer bir deyişle, uygulamanın yayınladığı her bildirim türü için ayrı bir kanal olabilir. Bir uygulama, uygulamanızın kullanıcıları tarafından yapılan seçimlere yanıt olarak da bildirim kanalları oluşturabilir. Örneğin, bir kullanıcının bir mesajlaşma uygulamasında oluşturduğu her ileti dizisi grubu için ayrı bildirim kanalları kurabilirsiniz.

Android 8.0 ve sonraki sürümlerde, kanal aynı zamanda bildirimlerinizin önem düzeyini belirttiğiniz yerdir. Dolayısıyla, aynı bildirim kanalında yayınlanan tüm bildirimler aynı davranışa sahiptir.

Daha fazla bilgi için Bildirim Kanalları Oluşturma ve Yönetme konusuna bakın.

Bildirimlerin önemi

Android, bir bildirimin kullanıcının çalışmasını ne kadar keseceğini (görsel ve işitsel olarak) belirlemek için bildirimin önem değerini kullanır. Bir bildirimin önem değeri ne kadar yüksek olursa bildirim, kullanıcının çalışmasını o kadar fazla keser.

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 bildirimlerin önemini sistem ayarlarında değiştirebilirler (Şekil 12). Android 7.1 (API düzeyi 25) ve önceki sürümlerde her bir bildirimin önemi, bildirimin priority değerine göre belirlenir.

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

Olası önem düzeyleri şunlardır:

  • Acil: Bir ses çıkarır ve uyarı bildirimi olarak görünür.
  • Yüksek: Bir ses çıkarır.
  • Orta: Ses çıkarmaz.
  • Düşük: Ses çıkarmaz ve durum çubuğunda görünmez.

Önem değerinden bağımsız olarak tüm bildirimler, bildirim çekmecesindeki gibi veya başlatıcı simgesinde bir rozet olarak kesintiye neden olmayan sistem kullanıcı arayüzü konumlarında görünür (bununla birlikte, bildirim rozetinin görünümünü değiştirebilseniz).

Daha fazla bilgi için önemi ayarlama konusuna bakın.

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 sesleri ve titreşimleri 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 üç farklı düzey vardır:

  • Tam sessizlik: Bu seçenek tüm sesleri ve titreşimleri engeller. Buna alarmlar, müzik, videolar ve oyunlar dahildir.
  • Yalnızca alarmlar: Alarmlar dışındaki tüm sesleri ve titreşimleri engeller.
  • Yalnızca öncelikliler: Kullanıcılar, sistem genelinde hangi kategorilerin (yalnızca alarmlar, hatırlatıcılar, etkinlikler, çağrılar veya mesajlar gibi) çalışmalarını kesebileceğini yapılandırabilirler. Mesajlar ve çağrılar için kullanıcılar, mesajı gönderenin veya çağrıyı yapanın kim olduğuna bağlı olarak filtrelemeyi de seçebilirler (şekil 13).

Şekil 13. Kullanıcılar, sistem genelindeki kategorilere (solda) ve mesajı kimin gönderdiğine veya çağrıyı kimin yaptığına (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 özel 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ı, daha sonra öncelikli modunda para çekme bildirimlerine, para yatırma bildirimlerine veya her ikisine birden izin vermeyi seçebilir. Android 7.1 (API düzeyi 25) ve önceki sürümlerini çalıştıran cihazlarda, kullanıcılar bildirimlere kanal temelinde değil, uygulama temelinde izin verebilirler.

Bu kullanıcı ayarları için bildirimlerinizi uygun şekilde yapılandırmak için sistem genelinde bir kategori ve kanal 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 işlemi olabilir. Bu bildirim, diğer bildirimler gibi kapatılamaz. Bildirimi kaldırmak için hizmetin durdurulması veya "ön plan" durumundan çıkarılması gerekir.

Daha fazla bilgi için Bir hizmeti ön planda çalıştırma konusunu okuyun. Bir medya oynatıcı oluşturuyorsanız, Bir ön plan hizmeti ile MediaStyle bildirimlerini kullanma konusunu da okuyun.

Yayın sınırları

Android 8.1 (API düzeyi 27) sürümünden itibaren, bir uygulama bildiriminin saniyede bir defadan fazla ses çıkarmasına izin verilmemektedir. Uygulamanız bir saniyede birden fazla bildirim yayınlarsa tüm bildirimler beklendiği gibi görünür ancak her saniye için 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 (birçoğu bir saniyeden kısa sürede) yayınlarsanız sistem bazı güncellemeleri göstermeyebilir.

Bildirim uyumluluğu

Android 1.0'dan beri, bildirim sistemi kullanıcı arayüzü ve bildirimle ilgili API'ler sürekli olarak gelişmiştir. Bir yandan eski cihazları desteklerken diğer yandan en yeni bildirim API'si özelliklerini kullanmak için destek kitaplığı bildirim API'sini kullanın: NotificationCompat ve alt sınıflarının yanı sıra NotificationManagerCompat. Bu API'ler, API düzeylerini kontrol etme görevini sizin yerinize gerçekleştirdiğinden bunun için koşullu kod yazma zorunluluğunuz ortadan kalkar.

NotificationCompat, platform geliştikçe en yeni yöntemleri içerecek şekilde güncellenir. Bir yöntemin NotificationCompat API'sinde mevcut olmasının, ilgili özelliğin daha eski cihazlarda sağlanacağını garanti etmediği unutulmamalıdır. Bazı durumlarda yeni kullanıma sunulan bir API'nin çağrılması, eski cihazlarda herhangi bir işlemin yapılmamasına neden olur. Örneğin, NotificationCompat.addAction(), yalnızca Android 4.1 (API düzeyi 16) ve sonraki sürümleri çalıştıran bir cihazda işlem düğmesini görüntüler.

Aşağıda, Android bildirimleri için en dikkat çekici davranış değişikliklerinin bir özeti sağlanmıştır.

Android 4.1, API düzeyi 16

  • Genişletilebilir bildirim şablonları (bildirim stilleri olarak adlandırılmıştır) kullanıma sunularak bilgilerin görüntülenmesi için daha geniş bildirim içeriği alanına imkan tanıdı. Kullanıcılar bir bildirimi genişletmek için bir parmakla yukarı/aşağı hızlıca kaydırma hareketini kullanabilirler.
  • Bir bildirime, düğme biçiminde ek işlemler ekleme olanağı da getirildi.
  • Kullanıcıların ayarlardan bildirimleri uygulama temelinde kapatabilmeleri özelliği eklendi.

Android 4.4, API düzeyi 19 ve 20

  • API'ye bildirim dinleyici hizmetleri eklendi.
  • API düzeyi 20'de Android Wear (artık Wear OS olarak adlandırılmaktadır) desteği eklendi.

Android 5.0, API düzeyi 21

  • Kilit ekranı ve uyarı bildirimleri kullanıma sunuldu.
  • Kullanıcı artık telefonu Rahatsız Etmeyin moduna alabilir ve cihaz yalnızca öncelikliler modundayken hangi bildirimlerin çalışmasını kesmesine izin verileceğini yapılandırabilir.
  • API'ye eklenen yöntemler, kilit ekranında (setVisibility()) ve bildirim metninin "genel" sürümünü belirtmek için bir bildirim görüntülenip görüntülenmeyeceğini ayarlar.
  • Sisteme bu bildirimin ne kadar "kesintiye uğratıcı" olması gerektiğini bildiren setPriority() eklendi (örneğin, bildirim önceliğinin yükseğe ayarlanması bildirimi, bir uyarı bildirimi olarak gösterir).
  • Android Wear (şimdiki adıyla Wear OS) cihazlarına bildirim yığınları desteği eklendi. setGroup() yöntemini kullanarak bildirimleri bir yığına yerleştirin. Bildirim yığınlarının henüz tabletlerde veya telefonlarda desteklenmediğini unutmayın. Bildirim yığınları daha sonra bir grup veya paket olarak adlandırılmıştır.

Android 7.0, API düzeyi 24

  • Bildirim şablonları, lokomotif resmi ve avatarı vurgulamak için yeniden tasarlandı.
  • Üç bildirim şablonu eklendi: Mesajlaşma uygulamaları için bir, genişletilebilir sağlama ve diğer sistem süslemeleri ile özel içerik görünümlerini süslemek için iki şablon.
  • Avuç içi cihazlara (telefonlar ve tabletler) bildirim grupları için destek eklendi. Android 5.0 (API düzeyi 21) sürümünde kullanıma sunulan Android Wear (şimdiki adıyla Wear OS) bildirim yığınlarıyla aynı API'yi kullanır.
  • Kullanıcılar, satır içi yanıtı kullanarak doğrudan bir bildirimin içinden yanıt verebilirler (metin girebilirler ve daha sonra bu metin, bildirimin üst uygulamasına yönlendirilir).

Android 8.0, API düzeyi 26

  • Bağımsız bildirimler artık belirli bir kanala yerleştirilmelidir.
  • Kullanıcılar bir uygulamadan gelen tüm bildirimleri kapatmak yerine, bildirimleri artık kanal bazında kapatabilirler.
  • Etkin bildirimleri olan uygulamalar, ana ekran/başlatıcı ekranındaki uygulama simgesinin üstünde bir bildirim "rozeti" görüntüler.
  • Kullanıcılar artık çekmecedeki bir bildirimi erteleyebilirler. Bir bildirim için otomatik zaman aşımı süresi ayarlayabilirsiniz.
  • Ayrıca, bildirimin arka plan rengini de ayarlayabilirsiniz.
  • Bildirim davranışlarıyla ilgili bazı API'ler Notification nesnesinden NotificationChannel nesnesine taşındı. Örneğin, Android 8.0 ve sonraki sürümler için NotificationCompat.Builder.setPriority() yerine NotificationChannel.setImportance() kullanın.