Varsayılan olarak bildirimler, telefondaki bir uygulamadan eşlenen kol saatlerine köprü modunda bağlanır veya paylaşılır. Eğer Bir saat uygulaması geliştiriyorsanız ve uygulamanız eşlenmiş bir telefonda da bulunuyorsa, kullanıcılar aynı biri telefon uygulaması tarafından, diğeri ise telefon uygulaması tarafından oluşturulup köprü modunda izleme uygulaması tarafından. Wear OS'te, nasıl ve ne zaman kontrol edilebileceğini kontrol eden özellikler vardır tüm bildirimler köprü modunda.
Yinelenen bildirimlerden kaçının
Harici bir kaynaktan bildirim oluşturduğunuzda (ör. Firebase Cloud Messaging, mobil uygulamanız ve giyilebilir uygulamanızın her biri kol saatinde kendi bildirimlerini gösterebilir. Kaçınılması gerekenler bu tür bir kopyalama varsa giyilebilir uygulamanızda köprü kullanımını programlı bir şekilde devre dışı bırakabilirsiniz.
Köprü etiketleri kullan
Mobil uygulamanızda oluşturulan bildirimlerden bazılarını kol saatine bağlamak istiyorsanız Giyilebilir uygulamanız yüklendiğinde köprü etiketleri ayarlayın.
Bildirimde bir köprü etiketi ayarlamak için
setBridgeTag(String)
.
yöntemini çağırın:
val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend( NotificationCompat.WearableExtender() .setBridgeTag("tagOne") ) .build()
Köprü modunu devre dışı bırak
Bazı bildirimler veya tüm bildirimler için köprü modunu devre dışı bırakabilirsiniz. Köprülemeyi seçerek devre dışı bırakmanızı öneririz.
Bazı bildirimler için köprü modunu devre dışı bırak
Köprüyü dinamik olarak devre dışı bırakabilir ve isteğe bağlı olarak bazı bildirimlere izin verebilirsiniz
dönüşüm gerçekleştirene kadar yardımcı olabilir. Örneğin,
tagOne
, tagTwo
veya tagThree
için
BridgingConfig
nesnesini tanımlayın:
BridgingManager.fromContext(context).setConfig( BridgingConfig.Builder(context, false) .addExcludedTags(listOf("tagOne", "tagTwo", "tagThree")) .build() )
Tüm bildirimler için köprüyü devre dışı bırak (önerilmez)
Not: Tüm bildirimlerde köprü özelliğinin devre dışı bırakılması önerilmez çünkü manifest'te ayarlanan köprü yapılandırması, bir saat uygulaması yüklenir yüklenmez geçerlilik kazanır. Bu durumda, kullanıcının saat uygulamasını açıp ayarlaması gerektiğinde bildirimler kaybolabilir ve bildirim alın.
Bir kullanıcıdan gelen tüm bildirimlerin birbirine bağlanmasını
telefon uygulaması için aşağıdaki örnekte gösterildiği gibi, saat uygulamasının manifest dosyasında <meta-data>
girişini kullanın:
<application> ... <!-- Beware, this can have unintended consqequences before the user is signed-in --> <meta-data android:name="com.google.android.wearable.notificationBridgeMode" android:value="NO_BRIDGING" /> ... </application>
Not: Çalışma zamanında bir köprü yapılandırması belirtmek, köprülemeyle ilgili bir yapılandırma işlemini geçersiz kılar ayarını değiştirin.
Benzer bildirimleri senkronize etmek için kapatma kimliği belirleyin
Köprü modu özelliğiyle köprü oluşturmayı engellediğinizde, bildirimler bir kullanıcının cihazları arasında senkronize edilir.
Ancak hem mobil cihazda hem de kol saatinde benzer bildirimler oluşturulursa Kullanıcı, herhangi birini kapattığında kapatılacak bildirimler.
NotificationCompat.WearableExtender
,
genel benzersiz bir kimlik ayarlayabilirsiniz. Böylece,
aynı kimlikle eşlenen saatlerde de gösterilmez.
İlgili içeriği oluşturmak için kullanılan
NotificationCompat.WearableExtender
.
class, aşağıdaki örnekte gösterildiği gibi kapatma kimliklerini kullanmanıza olanak tanıyan yöntemlere sahiptir:
fun setDismissalId(dismissalId: String): WearableExtender fun getDismissalId(): String
Kapatma kararını senkronize etmek için şunu kullanın:
setDismissalId()
.
yöntemidir. Her bildirim için
setDismissalId()
yöntemini çağırın.
Bildirim kapatıldığında aynı kapatma kimliğine sahip diğer tüm bildirimler
hem kol saatinde hem de telefonda kapatıldı. Kapatma kimliğini almak için şunu kullanın:
getDismissalId()
.
Aşağıdaki örnekte, genel olarak benzersiz bir kimlik yeni bir bildirim için belirtildiğinden, kapatmalar senkronize edilir:
val notification = NotificationCompat.Builder(context, channelId) // Set other fields ... .extend( NotificationCompat.WearableExtender() .setDismissalId("abc123") ) .build()
Not: Kapatma kimlikleri, kol saati bir Android telefonla eşlendiğinde çalışır, ancak kol saati şu anda çalışmaz bir iPhone ile eşlendi.
Bildirimler köprü modunda olmadığında
Aşağıdaki bildirim türleri için köprü uygulanmaz:
- Yalnızca yerel bildirimler
Notification.Builder.setLocalOnly(boolean)
- Devam eden bildirimler
Notification.Builder.setOngoing(boolean)
. veyaNotification.FLAG_ONGOING_EVENT
. - Temizlenemez bildirimler ayarı kullanılarak ayarlandı
Notification.FLAG_NO_CLEAR
- Giyilebilir cihaz uygulamasının eşdeğeri olan bildirimler daha önce açıklandığı gibi bildirim köprüsünün devre dışı bırakılmasına neden olabilir.
Köprülü bildirimler için en iyi uygulamalar
Giyilebilir cihazdaki köprü bildirimlerinin itilmesi veya kaldırılması zaman alır. olanak tanır. Bildirimlerinizi tasarlarken beklenmedik sürprizlerden kaçının neden olduğu hakkında daha fazla bilgi edinin. Aşağıdaki yönergeler, köprü bildirimlerinizin eşzamansız bildirimlerle çalıştığından emin olun:
- Telefonda bir bildirimi iptal ederseniz işlemin iptal edilmesi biraz zaman alabilir. kol saatinde ilgili bildirim. Bu süre içinde, Kullanıcı, söz konusu bildirimdeki beklemedeki amaçlardan birini gönderebilir. Bunun için nedeniyle iptal edilen bildirimlerden uygulamanızda bekleyen intent'ler almaya devam edin: bildirimleri iptal ederken bu bildirimlerin bekleyen intent alıcılarını tutun geçerlidir.
- Bildirim yığınının tamamını tek seferde iptal etmeyin ve yeniden tetiklemeyin. Yalnızca gerçekten değiştirilmiş bildirimleri değiştirin veya kaldırın. Bu, giyilebilir cihazın güncellenmesi sırasında yaşanan gecikmeyi önler ve uygulamanın pil ömrüne etkisi.
Tasarımla ilgili dikkat edilmesi gereken noktalar
Wear OS bildirimlerinin kendi tasarım yönergeleri vardır. Daha fazla bilgi için Wear OS Tasarım Yönergeleri'ni inceleyin.