Canlı güncelleme bildirimleri oluşturma

Canlı haberler, önemli güncellemelerin özetini sunarak kullanıcıların uygulamayı açmadan ilerleme durumunu takip etmesine olanak tanır. Sistem, canlı haber bildirimlerini öne çıkarır ancak kullanıcılar canlı haber bildirimlerini geçici olarak kapatabilir veya standart bildirime dönüştürebilir. Tanıtılan bildirimler, bildirim çekmecesinin ve kilit ekranının üst kısmı dahil olmak üzere sistem yüzeylerinde daha belirgin bir şekilde ve durum çubuğunda çip olarak görünür. Canlı haber bildirimleri, kısa, zamanında ve alakalı bilgiler sunmak için bildirim ilkelerine uymalıdır.

Şekil 1. Canlı haberler bildirimine örnek.

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

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

Bildiriminizin canlı haber olarak kabul edilmesi 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 bildirimi tanıtıp tanıtamayacağını doğrular. Bu yöntem, kullanıcının ayarlarda uygulama için canlı haberleri devre dışı bırakıp bırakmadığını dikkate almaz.
  • NotificationManager.canPostPromotedNotifications(), uygulamanızın Promosyon Bildirimi yayınlayıp yayınlayamayacağını kontrol eder. Örneğin, kullanıcının ayarlarda bu özelliği etkinleştirip etkinleştirmediğini kontrol eder.
  • 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 intent işlemidir.

Kullanım ölçütleri

Canlı haberleri devam eden, kullanıcı tarafından başlatılan ve zamana duyarlı etkinlikler için kullanın.

Şekil 2. Ana ekranınızda ve kilit ekranınızda çip olarak gösterilen canlı haberler.

Devam Ediyor

Canlı haberler, başlangıcı ve bitişi belirgin olan ve aktif olarak devam eden bir etkinliği temsil etmelidir. Geçmişte gerçekleşen bir etkinlik için canlı haberler 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ı haberler kullanılabilir.

Canlı haberler, devam eden etkinlikleri temsil eder. Uygulama işlevselliğine hızlandırılmış erişim sunmak için Anlık Bilgilendirmeleri kullanmayın. Bunu yapmak istiyorsanız bir uygulama widget'ı veya özel bir Hızlı Ayarlar kutusu kullanın.

  • Uygun kullanımlar: Etkin gezinme, devam eden telefon aramaları, 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

Canlı haberlerin çoğu, kullanıcı tarafından açıkça tetiklenen etkinlikleri (ör. antrenman başlatma, sürüş navigasyonunu başlatma veya araç çağırma) temsil etmelidir. Canlı haberlerde kullanıcının çevresi, ilgi alanları veya yaklaşan etkinlikleri gibi ortam bilgilerini göstermeyin. Diğer taraflarca tetiklenen etkinliklerin canlı haberler oluşturmasına izin vermeyin.

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

Zamana Duyarlı

Canlı haberler, yalnızca etkinlik boyunca kullanıcının dikkatini gerektiriyorsa gösterilmelidir. Canlı haberlerin önemli bir kullanım alanı, kullanıcının etkinliğin gelişen durumunu takip etmek için canlı habere göz atarak önemli bir avantaj elde ettiği izleme özelliğidir.

Canlı haberler, genellikle canlı haberler 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 mekana vardığında ya da biniş başladığında) Canlı Haberler'e dönüşmelidir. Öte yandan, kullanıcının sürekli izlemesi gerekmediği için paket takibi için canlı haberler uygun değildir.

Kullanıcı deneyimi uygulamaları

Durumu görselleştirmek için izleyici simgesini kullanın. Bu değer dinamik olarak güncellenebilir.

ilerleme çubuğunda özel izleyici
Şekil 3. Özel takip cihazı simgesi

TVS hesaplanırken veya henüz kullanılamıyorken boş bir durum göstermeyin. Örnekte gösterildiği gibi, sistemin çalıştığını belirtmek için "Düşünülüyor..." veya "Yeni rota çiziliyor..." gibi etkin yer tutucu metinler kullanın.

düşünme sürecini gösteren boş olmayan durum
Şekil 4. Canlı haberiniz için boş olmayan bir durum.

Durum Çipleri

Durum çipleri, bildirim görünür olmadığında kullanıcıların canlı haberleri takip etmesine olanak tanır. İlerleme odaklı bildiriminizle ilgili önemli durum bilgilerini iletmek için setShortCriticalText veya setWhen kullanın.

simgeli durum çipi
Şekil 5. Belirsiz durumda küçük simge (Notification.Builder#setSmallIcon) gösterilir.
saat içeren durum çipi
Şekil 6. Mutlak zamanı göstermek için Notification.Builder#setShortCriticalText kullanın.
bilgi içeren durum çipi
Şekil 7. Kritik bilgileri iletmek için Notification.Builder#setShortCriticalText kullanın.

Zaman

Bildirim kapatılmadığı veya güncellenmediği sürece, zaman tetikleyicisi bildirimin geçerlilik süresi için bir geri sayım başlatır. Aşağıdaki maddelerde, zamanın çeşitli durumlarda nasıl işlediği açıklanmaktadır:

  • Zaman en az 2 dakika sonraysa: Geçerli saat 10:05 ise ve zaman 10:10 olarak ayarlanmışsa çipte 5 dk yazar.
  • Zaman geçmişte olduğunda: Metin gösterilmez.
  • Kronometre kullanıldığında çipte bir zamanlayıcı gösterilebilir. setUsesChronometer ve setChronometerCountdown sayfalarına bakın. Kronometre zamanlayıcı, pozitif olduğu sürece çipte gösterilir.
  • Bildiriminizde zamanın gösterilmesini istemiyorsanız: FALSE için setShowWhen kullanın.

Durum çipinin görünümü

Durum çipi her zaman bir simge içerir ve isteğe bağlı olarak metin de içerebilir. Çipin maksimum genişliği 96 dp'dir. Metin yalnızca tamamı çipe sığabiliyorsa gösterilir. Metin, aşağıdaki ölçütlere göre gösterilir:

  • 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.

Wear OS

Canlı haberler, bağlı bazı Wear OS cihazlara köprülenir. Bu köprü oluşturma davranışıyla ilgili kılavuzun yanı sıra Wear OS için yerel canlı haberler oluşturma hakkında bilgi edinmek isterseniz Wear OS canlı haberler kılavuzunu inceleyin.

Kapatma işlemi

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

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

Bu API'leri denemek için örnek uygulamaya bakın.

SSS

Soru: İlerleme çubuğunun sonundaki beyaz nokta nedir?

İlerleme erişilebilirlik görselleştirme göstergesinin sonu
Şekil 8. Yolculuğun sonunda erişilebilirlik görselleştirmesi

Cevap: İlerleme çubuğunun sonundaki beyaz nokta, ilerleme çubuğunun sonunu görsel olarak işaretler.

Soru: Canlı haberler için özel bildirimler neden desteklenmiyor?

Cevap: Özel bildirimlerin davranışı Android sürümleri ve cihaz üreticileri arasında önemli ölçüde farklılık gösterdiğinden tutarlı test ve kullanıcı deneyimi zorlaşır. RemoteViews kullanarak özel bildirimlerden kaçının.