Bildirimler için köprü seçenekleri

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:

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.