Canlı güncelleme bildirimi oluşturma

Sistem, Canlı Güncelleme bildirimlerini öne çıkarır. Öne çıkarılan bildirimler, bildirim çekmecesinin üst kısmı ve kilit ekranı da dahil olmak üzere sistem yüzeylerinde daha belirgin bir şekilde gösterilir ve durum çubuğunda çip olarak görünür.

1. şekil. Canlı güncelleme bildirimi örneği.

Tanıtılan bildirim kartları aşağıdaki görünüm özelliklerine sahiptir:

  • Varsayılan olarak genişletilmiş
  • Daraltılamaz

Bildiriminizin canlı güncelleme olarak değerlendirilmesi için aşağıdaki koşulları karşılaması gerekir:

Promosyon özellikleri

Aşağıdaki API'ler, sistemin bildiriminizi tanıtıp tanıtmayacağını belirlemenize yardımcı olur:

  • Notification.FLAG_PROMOTED_ONGOING, bildirimin tanıtılıp tanıtılmadığını gösterir.
  • Notification.hasPromotableCharacteristics(), sistemin bildirimin düzeyini yükseltip yükseltemeyeceğini doğrular. Bu yöntemde, kullanıcının ayarlarda uygulama için Canlı Güncellemeler'i devre dışı bırakıp bırakmadığı dikkate alınmaz.
  • NotificationManager.canPostPromotedNotifications(), uygulamanızın tanıtım bildirimi yayınlayıp yayınlayamayacağını kontrol eder. Örneğin, kullanıcı bunu ayarlarda etkinleştirmiş veya devre dışı bırakmış olabilir.
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS, uygulamaların kullanıcıları bu özelliği etkinleştirmek için Ayarlar'a yönlendirmesine olanak tanıyan amaç işlemidir.

Kullanım ölçütleri

Devam eden, kullanıcı tarafından başlatılan ve zamana duyarlı etkinlikler için Canlı Güncellemeler'i kullanın.

Devam ediyor

Canlı Güncelleme, belirgin bir başlangıcı ve bitişi olan, aktif olarak devam eden bir etkinliği temsil etmelidir. Geçmişte gerçekleşen bir etkinlik için Canlı Güncelleme kullanmayın. Bunun yerine standart bir bildirim kullanın. Bu durum, henüz başlamamış etkinlikler için de geçerlidir. Ancak başlamak üzere olan etkinliklerde Canlı Güncelleme kullanılabilir.

Canlı Güncellemeler, devam eden etkinlikleri gösterir. Uygulama işlevlerine hızlandırılmış erişim sunmak için Canlı Güncellemeler'i kullanmayın. Bunu yapmak istiyorsanız bir uygulama widget'ı veya özel bir Hızlı Ayarlar kutusu kullanın.

  • Uygun kullanım alanları: Etkin gezinme, devam eden telefon görüşmeleri, etkin araç paylaşımı takibi ve etkin yemek teslimatı takibi.
  • Uygunsuz kullanımlar: Reklamlar, promosyonlar, sohbet mesajları, uyarılar, yaklaşan takvim etkinlikleri ve uygulama özelliklerine hızlı erişim.

Kullanıcı tarafından başlatılan

Çoğu Canlı Güncelleme, kullanıcı tarafından açıkça tetiklenen etkinlikleri (ör. egzersize başlama, sürüş navigasyonunu başlatma veya araç paylaşımı için araç çağırma) temsil etmelidir. Canlı Güncelleme'de kullanıcının ortamı, ilgi alanları veya yaklaşan etkinlikleri gibi ortamla ilgili bilgileri göstermeyin. Diğer tarafların tetiklediği etkinliklerin Canlı Güncellemeler oluşturmasına izin vermeyin.

Bazen kullanıcılar, gelecekte bir süre boyunca etkinlik başlatacak bir işlem gerçekleştirebilir. Örneğin, kullanıcı bir uçuş veya konser için bilet satın alırsa, bir turnuvaya kaydolursa ya da gelecekte zamana duyarlı bir etkinliğe katılacağını belirtirse. Bu gibi durumlarda, planlanan etkinlik başladığında otomatik olarak Canlı Güncelleme göstermek uygun olabilir. Ancak uygulamalar, tetikleyicilerini yalnızca etkinlik yaklaştığında görünecek şekilde ayarlamalıdır. Kullanıcı, bir spor maçı gibi arka plan etkinliğini izlemeye başlamak istediğini açıkça belirtirse bu etkinlikle ilgili Canlı Güncellemeler yayınlamaya başlayabilirsiniz. Ancak, ilişkili bildirime Sabitlemeyi Kaldır işlemini de eklemeniz gerekir.

Zamana Duyarlı

Canlı güncellemeyi yalnızca etkinlik boyunca kullanıcının dikkatini gerektiriyorsa gösterin. Canlı Güncellemeler'in temel kullanım alanlarından biri izlemedir. Kullanıcı, etkinliğin gelişen durumunu takip etmek için Canlı Güncelleme'ye göz atarak önemli ölçüde fayda sağlar.

Canlı Güncellemeler, genellikle Canlı Güncellemeler ile normal bildirimler arasında geçiş yapan etkinlikler için uygundur. Örneğin, biniş kartı bildirimi, kullanıcının uçuşundan saatler önce gösterilebilir. Ancak bildirim, yalnızca kullanıcının acil bir ihtiyacı olduğunda (ör. havaalanına veya etkinliğin yapılacağı yere vardığında ya da biniş başladıktan sonra) Canlı Güncelleme'ye dönüştürülmelidir. Buna karşılık, kullanıcının sürekli olarak izlemesi gerekmediğinden bir paketin takibi için Canlı Güncelleme uygun değildir.

Durum çipleri

Durum çipleri, bildirim görünmüyorken kullanıcıların Canlı Güncellemeleri takip etmesine olanak tanır. İlerleme odaklı bildiriminize ilişkin önemli durum bilgilerini iletmek için setShortCriticalText veya setWhen simgelerini kullanın.

simgeli durum çipi
Şekil 2. Belirsiz durumda küçük simge Notification.Builder#setSmallIcon gösterilir.
zaman içeren durum çipi
3.Şekil Mutlak zamanı göstermek için Notification.Builder#setShortCriticalText öğesini kullanın.
bilgi içeren durum çipi
Şekil 4. Kritik bilgileri iletmek için Notification.Builder#setShortCriticalText kullanın.

Ne zaman

Bildirim kapatılmadığı veya güncellenmediği sürece, ne zaman tetiklenirse bildirimin süresi için geri sayım başlatılır.

  • Ne zaman zamanı şu andan en az 2 dakika sonra olmalıdır: Şu an saat 10:05 ise ve ne zaman zamanı 10:10 olarak ayarlanmışsa çipte "5 dk." yazar.
  • Bildirim zamanı 1 dakikadan daha eski ise bildirim gösterilmez.
  • Bildirimin gölgede gösterilmesini istemiyorsanız setShowWhen simgesini kullanarak FALSE.

Durum çipinin görünümü

Durum çipinde her zaman bir simge bulunur ve isteğe bağlı olarak metin de yer alabilir. Çipin maksimum genişliği 96 dp'dir. Metni aşağıdaki ölçütlere göre gösterin:

  • 7 karakterden kısaysa metnin tamamını gösterin.
  • Metnin yarısından azı gösterilecekse yalnızca simgeyi gösterin.
  • Metnin yarısından fazlası gösterilecekse mümkün olduğunca fazla metin gösterin.

Kapatma

Kullanıcılar, bildirim gölgesinde bildirim görünürlüğünü kontrol edebilir. İstenmeyen canlı güncellemeler yayınlamak, kullanıcıların uygulamanın yayınlama iznini iptal etmesine neden olabilir.

Kullanıcıların Canlı Güncellemeler'i tamamen devre dışı bırakmasını önlemek için kullanıcıların kapatabileceği güncellemeler yayınlamayın. Kullanıcının kapattığı Canlı Güncellemeleri yeniden yayınlamayın. Kapatılan güncellemeleri tespit etmek için setDeleteIntent kullanın.

Bu API'lerle deneme yapmak için örnek uygulamaya bakın.