Saatlerdeki bildirimler, telefonlardaki bildirimlerle aynı API'leri kullanır ve aynı yapıya sahiptir.
Bildirimler kol saatinde iki şekilde görünebilir:
- Bir mobil uygulama bildirim oluşturur ve sistem bu bildirimi otomatik olarak köprüleyerek kol saatine gönderir.
- Giyilebilir uygulama 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.
Şekil 1. Aynı bildirim telefonda ve 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.
Not:
Tam ekran intent bildirimleri (setFullScreenIntent())
ve USE_FULL_SCREEN_INTENT
izni Wear OS'te desteklenmez.
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şlemlerin yer aldığı, 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:
Şekil 2. Wear OS'teki MessagingStyle bildirimi örneği.
Bildirimin genişletilmiş durumunun alt kısmında birden fazla işlem olduğunu görebilirsiniz.
İpucu: Bildirimlerinizde "yanıtla" gibi bir işlem varsa (ör. mesajlaşma uygulaması için) bildirimin davranışını iyileştirebilirsiniz. Örneğin, doğrudan giyilebilir cihazdan sesli girişi etkinleştirebilir 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
Bildirimler, varsayılan olarak eşlenmiş telefondaki uygulamadan eşlenmiş tüm kol saatlerine aktarılır. Akıllı 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ü 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
Bir bildirime giyilebilir cihazlara özel özellikler eklemeniz gerekiyorsa seçenekleri belirtmek için
NotificationCompat.WearableExtender sınıfını kullanabilirsiniz.
Bu API'yi kullanmak için aşağıdakileri yapın:
Not:
Çerçevenin NotificationManager özelliğini kullanıyorsanız
NotificationCompat.WearableExtender'deki bazı özellikler çalışmaz. Bu nedenle
NotificationCompat kullanmanız gerekir.
Bu örnekte, bildirimde Wear'a özel bir işlemin nasıl ayarlanacağı ve
kapatma kimliğinin nasıl ayarlanacağı gösterilmektedir. Bildirim kapatıldığında, aynı kapatma kimliğine sahip diğer tüm bildirimler saatte ve eşlenmiş telefonda kapatılır. Reddetme kimliği almak için
getDismissalId() kullanın.
// This intent will be fired as a result of the user clicking the "Open on watch" action. // However, it executes on the phone, not on the watch. Typically, the Activity should then use // RemoteActivityHelper to then launch the correct activity on the watch. val intent = Intent(context, LaunchOnWearActivity::class.java) val wearPendingIntent = PendingIntent.getActivity( context, wearRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) val openOnWatchAction = NotificationCompat.Action.Builder( R.drawable.watch, "Open on watch", wearPendingIntent ) .build() val wearableExtender = NotificationCompat.WearableExtender() // This action will only be shown on the watch, not on the phone. // Actions added to the Notification builder directly will not be shown on the watch, // because one or more actions are defined in the WearableExtender. .addAction(openOnWatchAction) // This synchronizes dismissals between watch and phone. .setDismissalId(chatId) val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend(wearableExtender) .build()
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:
ConfirmationActivity'ı genişleten yeni birActivityoluşturun.- Telefon uygulamasını başlatmak için yeni
Activity'deRemoteActivityHelpersimgesini kullanın. - Bildirimden
Activitybaşlatmak içinIntentoluştururkenEXTRA_ANIMATION_TYPEekstrasınıOPEN_ON_PHONE_ANIMATIONolarak ayarlayın.
Not: Bildirim işleminin hedefi olarak BroadcastReceiver kullanamazsınız.