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. Bildirim oluşturmaya başlamak için Bildirim oluşturma başlıklı makaleyi okuyun.
Bildirim tasarımı ve etkileşim kalıpları hakkında daha fazla bilgi için Bildirim tasarım kılavuzu başlıklı makaleyi inceleyin.
Cihazlardaki görünümler
Bildirimler, kullanıcılara otomatik olarak farklı konumlarda ve biçimlerde gösterilir. Bildirimler, durum çubuğunda bir simge, bildirim çekmecesinde daha ayrıntılı bir giriş ve uygulama simgesi üzerinde bir rozet biçiminde görünür. Bildirimler, eşlenen giyilebilir cihazlarda da 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.
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.
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 devam eden ön plan hizmetleri olan bir uygulamayı durdurmasına olanak tanıyan bir düğme yer alır.
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.
Uyarı bildirimi, uygulamanız bildirimi yayınladığında görünür. Bildirim, kısa bir süre sonra kaybolur ancak bildirim çekmecesinde her zaman olduğu gibi görünür durumda kalır.
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 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 yayınladığı bildirimlerin güvenli kilit ekranında gösterilip gösterilmeyeceğini ve gösteriliyorsa gösterilecek ayrıntı düzeyini programatik olarak ayarlayabilirsiniz.
Kullanıcılar, kilit ekranı bildirimlerinde gösterilecek 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ştirebilir.
Daha fazla bilgi için Kilit ekranı görünürlüğünü ayarlama başlıklı makaleyi inceleyin.
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 bildirim noktası olarak bilinen renkli bir rozet ile belirtir.
Kullanıcılar, bir uygulama simgesine dokunup basılı tutarak ilgili uygulamanın bildirimlerini görebilirler. Kullanıcılar, bildirim çekmecesine benzer şekilde, bu menüdeki bildirimleri kapatabilir veya bildirimlerden işlem yapabilirler.
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 söz konusu cihazda otomatik olarak görünür.
Giyilebilir cihazlarda bildirimlerinizin görünümünü özelleştirerek ve önerilen yanıtlar ile ses girişiyle yanıtlar da dahil olmak üzere farklı işlemler sağlayarak deneyimi geliştirebilirsiniz. Daha fazla bilgi için bildiriminize giyilebilir cihazlara özel özellikleri nasıl ekleyebileceğinizi öğrenin.
Bildirim anatomisi
Bir bildirimin tasarımı, sistem şablonlarına göre belirlenir. Uygulamanız, ş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.
Bildirimlerin en yaygın kısımları Şekil 7'de şu şekilde belirtilmiştir:
- Küçük simge: Gereklidir;
setSmallIcon()
ile ayarlanır. - Uygulama adı: Sistem tarafından sağlanır.
- Zaman damgası: Sistem tarafından sağlanır ancak
setWhen()
kullanarak geçersiz kılabilir veyasetShowWhen(false)
kullanarak gizleyebilirsiniz. - 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 bu resmi kullanmayın.
setLargeIcon()
ile ayarlayın. - Başlık: isteğe bağlıdır;
setContentTitle()
ile ayarlanır. - Metin: isteğe bağlıdır;
setContentText()
ile ayarlanır.
Tüm cihazlarda doğru bir tasarım uyumluluğu sağlamak için sistem şablonlarını kullanmanızı önemle tavsiye ederiz. Gerekirse özel 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 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 8'de gösterildiği gibi ekleyebilirsiniz.
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.
Android 10'dan (API düzeyi 29) itibaren platform, önerilen intent tabanlı işlemlerle 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çık bir cihaz kullanılmasını zorunlu kıl
Kullanıcılar, cihazın kilit ekranında bildirim işlemlerini görebilir. Bir bildirim işlemi, uygulamanın bir etkinliği başlatmasına veya doğrudan yanıt göndermesine neden oluyorsa uygulamanın bu bildirim işlemini tetikleyebilmesi için kullanıcıların cihazın kilidini açması gerekir.
Android 12 (API düzeyi 31) ve sonraki sürümlerde, bir bildirim işlemini, işlemin başlattığı iş akışı ne olursa olsun uygulamanızın bu işlemi tetiklemesi için cihazın kilidinin açılması gerektiği şekilde yapılandırabilirsiniz. Bu seçenek, kilitli cihazlardaki bildirimlere ek bir güvenlik katmanı ekler.
Uygulamanız belirli bir bildirim işlemini çağırmadan önce 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
değerini setAuthenticationRequired()
değerine 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.
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 başlıklı makaleyi inceleyin.
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 ya da ileti dizisi güncellemeleri göstermek için gelen kutusu stilindeki bildirimi kullanın.
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 fazla ayrıntı için bildirim grubunu ve içindeki her bir bildirimi aşamalı olarak genişletebilir (Şekil 10).
Bir gruba nasıl bildirim ekleneceğini öğrenmek için Bildirim grubu oluşturma başlıklı makaleyi inceleyin.
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. 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, her bir kanalın görsel ve işitsel seçeneklerini Şekil 11'de gösterildiği gibi Android sistem ayarlarından kontrol edebilir. Ayrıca kullanıcılar, ilgili kanalın davranışlarını değiştirmek için bir bildirime dokunup basılı tutabilirler.
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 uygulamanın etkin bir şekilde tek bir kanalı vardır.
Bir 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 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. Bu konu aşağıdaki bölümde açıklanmıştır.
Daha fazla bilgi için Bildirim kanalları oluşturma ve yönetme başlıklı makaleyi inceleyin.
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 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, sistem ayarlarında bir bildirim kanalının önemini değiştirebilir (Şekil 12).
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: 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. Ancak bildirim rozetinin görünümünü değiştirebilirsiniz.
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 üç 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 aramalar için kullanıcılar, şekil 13'te gösterildiği gibi gönderene veya arayana göre filtreleme yapabilir.
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ı, ö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ümlerini çalıştıran cihazlarda, kullanıcılar bildirimlere kanal temelinde değil, uygulama temelinde 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
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 Ön plan hizmetleri başlıklı makaleyi 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, 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 güncellemeleri göstermeyebilir.
Bildirim uyumluluğu
Android bildirim sistemi kullanıcı arayüzü ve bildirimle ilgili API'ler sürekli olarak gelişmektedir. Eski cihazları desteklerken en son bildirim API özelliklerini kullanmak için Destek Kitaplığı bildirim API'sini (NotificationCompat
), alt sınıflarını ve NotificationManagerCompat
'i kullanın.
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. Ancak bir yöntemin NotificationCompat
API'sinde mevcut olması, ilgili özelliğin 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 sağlanmıştır.
Android 5.0, API düzeyi 21
Kilit ekranı ve uyarı bildirimleri kullanıma sunuldu.
Kullanıcının telefonu Rahatsız Etmeyin moduna ayarlamasına ve cihaz yalnızca öncelikliler modundayken hangi bildirimlerin çalışmasını kesmesine izin verileceğini yapılandırmasına olanak tanır.
Bir bildirimin kilit ekranında görüntülenip görüntülenmeyeceğini ayarlamak için yöntemler ekler (ör.
setVisibility()
) ve bildirim metninin "genel" sürümünü belirtir.Sisteme bildirimin ne kadar kesintiye uğratıcı olduğunu bildiren
setPriority()
yöntemini ekler. Örneğin, önceliği yüksek olarak ayarlamak bildirimi bir uyarı bildirimi olarak gösterir.Android Wear (şimdiki adıyla Wear OS) cihazlarına bildirim yığınları desteği eklendi.
setGroup()
kullanarak bildirimleri bir yığına yerleştirin. Daha sonra grup veya paket olarak adlandırılan bildirim yığınları, Android 7.0'a (API düzeyi 24) kadar tabletlerde veya telefonlarda desteklenmez.
Android 7.0, API düzeyi 24
Bildirim şablonları, lokomotif resmi ve avatarı vurgulamak için yeniden tasarlandı.
Üç bildirim şablonu ekler: 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.
Telefon ve tablet gibi avuç içi cihazlara 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ın satır içi yanıtı kullanarak bir bildirimin içinden yanıt vermesine olanak tanır. Metin girebilirler ve bu metin, 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ındaki uygulama simgesinin üstünde bir bildirim rozeti göstermesini sağlar.
Kullanıcıların çekmeceden bir bildirimi ertelemesine olanak tanır. Bir bildirim için otomatik zaman aşımı süresi ayarlayabilirsiniz.
Bildirimin arka plan rengini ayarlamanıza olanak tanır.
Bildirim davranışlarıyla ilgili bazı API'ler
Notification
yerineNotificationChannel
altına taşındı. Örneğin, Android 8.0 ve sonraki sürümlerdeNotificationCompat.Builder.setPriority()
yerineNotificationChannel.setImportance()
kullanın.
Android 13.0, API düzeyi 33
- Çalışma zamanı izni ekler. Uygulamanızın istisna kapsamına girmeyen bildirimler gönderebilmesi için kullanıcının uygulamanıza bu izni vermesi gerekir.
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 izin alıp almadığını kontrol etmek için
NotificationManager.canUseFullScreenIntent
API'sini kullanın. Aksi takdirde uygulamanız, kullanıcıların izni verebileceği ayarlar sayfasını açmak içinACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
kullanabilir.Notification.FLAG_ONGOING_EVENT
işareti ayarlanmış olsa bile kullanıcıların bildirimleri kapatmasına izin vererek kullanıcıların kapatılamayan bildirimleri deneyimleme şeklini değiştirir.Notification.FLAG_ONGOING_EVENT
işareti ayarlanmışsa veya cihaz politikası denetleyicisi (DPC) ve kuruluş için destek paketleri varsa bu durumCallStyle
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.