Wear OS'te bildirimler

Saatlerdeki bildirimler, telefonlardaki bildirimlerle aynı API'leri kullanır ve aynı yapıya sahiptir.

Bildirimler kol saatinde iki şekilde görünebilir:

  1. Mobil uygulama bir bildirim oluşturur ve sistem bu bildirimi otomatik olarak köprüleyerek kol saatine gönderir.
  2. Giyilebilir cihaz uygulaması bildirim oluşturur.

Her iki senaryoda da bildirim oluşturmak için NotificationCompat.Builder sınıfını kullanın. Bildirimleri oluşturucu sınıfıyla oluşturduğunuzda sistem, bildirimlerin düzgün şekilde gösterilmesini sağlar. Örneğin, mobil uygulamanızdan bildirim gönderdiğinizde her bildirim, bildirim akışında kart olarak görünür.

Bildirimlerin nasıl görüntülendiğini görmek için aşağıdaki örneği inceleyin. notification-cards

Şekil 1. Aynı bildirim hem telefonda hem de kol saatinde gösteriliyor.

En iyi sonuçları elde etmek için NotificationCompat.Style alt sınıflarından birini kullanın.

Not: RemoteViews kullanıldığında bildirimlerdeki özel düzenler kaldırılır ve giyilebilir cihazda yalnızca metin ile simgeler gösterilir.

Giyilebilir cihazlar için önerilen bildirimler

Giyilebilir cihaz kullanıcılarıyla etkileşim kurmak için harika bir yol olduğundan tüm bildirimler için başlangıç noktası olarak genişletilebilir bildirimleri kullanın. Daraltılmış durum, bildirim tepsisinde kısa ve kolayca görülebilen bir deneyim sunar. Kullanıcı bu bildirime dokunduğunda bildirim genişler ve ek içerik ile işlemlere dair sürükleyici ve kaydırılabilir bir deneyim sunulur.

NotificationCompat.Style alt sınıflarından herhangi birini kullanarak mobil cihazlarda yaptığınız gibi genişletilebilir bildirim oluşturabilirsiniz. Örneğin, NotificationCompat.MessagingStyle kullanılarak oluşturulan standart bir bildirim şu şekilde görünür: expandable-notification

Şekil 2. Wear OS'teki MessagingStyle bildirimi örneği.

Bildirimin, genişletilmiş durumun alt kısmında üst üste yerleştirilmiş birden fazla işlem içerdiğini görebilirsiniz.

İpucu: Bildirimlerinizde "yanıtla" gibi bir işlem varsa (ör. mesajlaşma uygulaması için) bildirimin davranışını iyileştirebilirsiniz. Örneğin, sesli girişi etkinleştirebilir, doğrudan giyilebilir cihazdan yanıt verebilir veya setChoices() ile önceden tanımlanmış metin yanıtlarını kullanabilirsiniz. Daha fazla bilgi için Yanıtla düğmesini ekleme başlıklı makaleyi inceleyin.

Yinelenen bildirimleri önleme

Varsayılan olarak, bildirimler tamamlayıcı telefon uygulamasından eşlenmiş tüm kol saatlerine aktarılır. Akıllı giyilebilir cihaz uygulamanız yüklü değilse bu harika bir seçenektir.

Ancak bağımsız bir kol saati uygulaması ve tamamlayıcı bir telefon uygulaması oluşturursanız uygulamalar yinelenen bildirimler oluşturur.

Wear OS, köprüleme API'leri ile yinelenen bildirimleri durdurma olanağı sunar. Bu durum, Wear OS 5 veya sonraki sürümlerin yüklü olduğu cihazlardaki uygulamalar için özellikle önemlidir. Bunun nedeni, mobil cihazda kapatılabilen bazı bildirimlerin Wear OS cihazda kapatılamamasıdır. Daha fazla bilgi için Bildirimler için köprü oluşturma seçenekleri başlıklı makaleyi inceleyin.

Bildirime giyilebilir cihazlara özel özellikler ekleme

Bildirime giyilebilir cihaza özel özellikler eklemeniz gerekiyorsa (ör. uygulama simgesini giyilebilir cihaz bildiriminden gizleme veya kullanıcıların ses girişiyle metin yanıtı dikte etmesine izin verme) seçenekleri belirtmek için NotificationCompat.WearableExtender sınıfını kullanabilirsiniz. Bu API'yi kullanmak için aşağıdakileri yapın:

  1. Giyilebilir cihaza özel seçenekleri ayarlayarak WearableExtender bildirimi örneği oluşturun.
  2. Bu kılavuzun önceki bölümlerinde açıklandığı gibi, bildiriminize istediğiniz özellikleri ayarlayarak NotificationCompat.Builder örneği oluşturun.
  3. Bildirimde extend() öğesini çağırın ve WearableExtender öğesini iletin. Bu işlem, giyilebilir cihaz seçeneklerini bildirime uygular.
  4. Bildirimi oluşturmak için Call build() işlevini kullanın.

Not: Çerçevenin NotificationManager özelliğini kullanıyorsanız NotificationCompat.WearableExtender'deki bazı özellikler çalışmaz. Bu nedenle NotificationCompat kullanmanız gerekir.

Kullanıcının cihazlarında bildirimlerin kapatılmasını veya iptalini senkronize edebilirsiniz. Bir kapatmayı senkronize etmek için setDismissalId() yöntemini kullanın. Her bildirim için setDismissalId() işlevini çağırırken genel olarak benzersiz bir kimliği dize olarak iletin. Bildirim kapatıldığında, aynı kapatma kimliğine sahip diğer tüm bildirimler saatte ve eşlik eden telefonda kapatılır. Reddetme kimliğini almak için getDismissalId() değerini kullanın.

Yalnızca giyilebilir cihazlarda kullanılabilen işlemleri belirtme

Saat ve telefonda farklı işlemlerin kullanılabilmesini istiyorsanız WearableExtender.addAction() kullanın. Bu yöntemle bir işlem eklediğinizde, giyilebilir cihaz NotificationCompat.Builder.addAction() ile eklenen diğer işlemleri göstermez. WearableExtender.addAction() ile eklenen işlemler yalnızca kol saatinde görünür, telefonda görünmez.

Telefon uygulamanızı bir giyilebilir cihazdan başlatma

Köprülenmiş bildirimleri kullanıyorsanız her bildirimde, telefonda uygulamayı başlatmak için bir düğme bulunur. Ancak saatte oluşturulan yerel bir bildirim kullanıyorsanız telefonda uygulamayı başlatan bir düğme oluşturmak için aşağıdaki adımları uygulayın:

  1. ConfirmationActivity'ı genişleten yeni bir Activity oluşturun.
  2. Telefon uygulamasını başlatmak için yeni Activity'de RemoteActivityHelper simgesini kullanın.
  3. Bildirimden Activity başlatmak için Intent oluştururken EXTRA_ANIMATION_TYPE ekstrasını OPEN_ON_PHONE_ANIMATION olarak ayarlayın.
Bu yaklaşım, kullanıcıyı telefonunda etkileşimde bulunmaya yönlendirir ve arka plan işlemlerini başlatmayla ilgili platform şartlarına uyar.

Not: Bildirim işleminin hedefi olarak BroadcastReceiver kullanamazsınız.