Secara default, sistem akan menghubungkan, atau membagikan, notifikasi dari aplikasi ponsel ke smartwatch yang tersambung. Jika Anda membuat aplikasi smartwatch dan aplikasi Anda juga ada di ponsel yang disambungkan, pengguna mungkin menerima notifikasi duplikat—satu yang dihasilkan dan dihubungkan oleh aplikasi ponsel, dan satu yang dihasilkan oleh aplikasi smartwatch. Wear OS menyertakan fitur untuk mengontrol cara dan waktu notifikasi dihubungkan.
Menghindari notifikasi duplikat
Saat Anda membuat notifikasi dari sumber eksternal, seperti dari Firebase Cloud Messaging, aplikasi ponsel dan aplikasi smartwatch masing-masing dapat menampilkan notifikasinya sendiri di smartwatch. Untuk menghindari duplikasi, nonaktifkan penghubungan secara terprogram di aplikasi smartwatch.
Menggunakan tag penghubung
Untuk menghubungkan beberapa notifikasi yang dibuat aplikasi ponsel ke smartwatch saat aplikasi smartwatch diinstal, setel tag bridge.
Tetapkan tag penghubung pada notifikasi menggunakan metode
setBridgeTag(String)
seperti yang ditunjukkan dalam contoh kode berikut:
val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend( NotificationCompat.WearableExtender() .setBridgeTag("tagOne") ) .build()
Menonaktifkan penghubungan
Anda dapat menonaktifkan penghubungan untuk beberapa notifikasi atau untuk semua notifikasi. Sebaiknya nonaktifkan penghubungan secara selektif.
Menonaktifkan penghubungan hanya untuk beberapa notifikasi
Anda dapat menonaktifkan penghubungan secara dinamis dan, secara opsional, mengizinkan beberapa notifikasi
berdasarkan tagnya. Misalnya, untuk menonaktifkan penghubungan semua notifikasi kecuali yang diberi tag sebagai tagOne, tagTwo, atau tagThree, gunakan objek
BridgingConfig
seperti yang ditunjukkan pada contoh berikut:
// In this example, bridging is only enabled for tagOne, tagTwo and tagThree. BridgingManager.fromContext(context).setConfig( BridgingConfig.Builder(context, isBridgingEnabled = false) .addExcludedTags(listOf("tagOne", "tagTwo", "tagThree")) .build() )
Menonaktifkan penghubungan untuk semua notifikasi (tidak direkomendasikan)
Untuk mencegah penghubungan semua notifikasi dari aplikasi ponsel, gunakan
entri <meta-data> dalam file manifes aplikasi smartwatch, seperti yang ditunjukkan dalam
contoh berikut:
<!-- Beware, this can have unintended consequences before the user is signed-in --> <meta-data android:name="com.google.android.wearable.notificationBridgeMode" android:value="NO_BRIDGING" />
Menyetel ID penutupan untuk menyinkronkan notifikasi serupa
Jika Anda mencegah penghubungan dengan fitur mode bridge, penutupan notifikasi tidak akan disinkronkan di seluruh perangkat pengguna.
Namun, jika notifikasi serupa dibuat di ponsel dan smartwatch, Anda harus menutup kedua notifikasi saat pengguna menutup salah satunya.
Di
NotificationCompat.WearableExtender,
Anda dapat menyetel ID unik global. Jadi, saat pengguna menutup notifikasi,
notifikasi lain dengan ID yang sama di smartwatch yang tersambung juga akan ditutup.
Class NotificationCompat.WearableExtender memiliki metode yang memungkinkan Anda menggunakan
ID penutupan, seperti yang ditunjukkan dalam contoh berikut:
Saat pengguna menutup notifikasi, semua notifikasi lain dengan ID penutupan yang sama akan ditutup di smartwatch dan ponsel. Untuk mendapatkan ID penutupan, gunakan getDismissalId().
Dalam contoh berikut, ID unik secara global ditentukan untuk notifikasi baru, sehingga penutupan disinkronkan:
val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend( NotificationCompat.WearableExtender() .setDismissalId("abc123") ) .build()
Notifikasi khusus lokal
Untuk mencegah notifikasi duplikat, Anda juga dapat menggunakan setLocalOnly() untuk
membuat notifikasi lokal ke ponsel.
Namun, gunakan metode ini hanya jika notifikasi harus muncul hanya di perangkat yang membuatnya. Hal ini tidak hanya mencakup perangkat Wear OS, tetapi juga perangkat wearable lainnya dan perangkat terhubung lainnya. Notifikasi khusus lokal tidak dihubungkan, meskipun aplikasi Anda tidak diinstal di smartwatch.
Saat membangun aplikasi Wear OS dan ponsel yang keduanya membuat notifikasi, jangan gunakan pendekatan ini untuk menghindari notifikasi duplikat. Sebagai gantinya, gunakan opsi penyambungan.
Misalnya, gunakan notifikasi khusus lokal saat pengguna mendownload file di ponsel dan notifikasi menunjukkan bahwa download telah selesai.
Saat notifikasi tidak dihubungkan
Sistem tidak menghubungkan jenis notifikasi berikut:
- Notifikasi khusus lokal yang disetel menggunakan
Notification.Builder.setLocalOnly(boolean). - Notifikasi berkelanjutan yang disetel menggunakan
Notification.Builder.setOngoing(boolean)atauNotification.FLAG_ONGOING_EVENT. - Notifikasi yang tidak dapat dihapus disetel menggunakan
Notification.FLAG_NO_CLEAR. - Notifikasi dengan aplikasi wearable pasangannya telah menonaktifkan penghubungan notifikasi.
Pertimbangan penerapan untuk notifikasi terhubung
Perlu waktu untuk mengirim atau menghapus notifikasi terhubung dari perangkat wearable. Saat mendesain notifikasi, hindari perilaku tidak terduga yang disebabkan oleh latensi ini. Panduan berikut akan memastikan bahwa notifikasi yang terhubung berfungsi dengan notifikasi asinkron:
- Jika Anda membatalkan notifikasi di ponsel, perlu waktu beberapa saat untuk membatalkan notifikasi terkait di smartwatch. Selama waktu ini, pengguna mungkin mengirimkan salah satu intent tertunda pada notifikasi tersebut. Karena alasan ini, terus terima intent yang tertunda di aplikasi Anda dari notifikasi yang telah dibatalkan: saat membatalkan notifikasi, pertahankan penerima intent tertunda dalam notifikasi tersebut tetap valid.
- Jangan membatalkan dan memicu ulang seluruh stack notifikasi sekaligus. Cukup ubah atau hapus notifikasi yang sebenarnya telah diubah. Tindakan ini akan mencegah latensi pada update perangkat wearable dan mengurangi dampak aplikasi terhadap masa pakai baterai.
Pertimbangan desain
Notifikasi Wear OS memiliki panduan desainnya sendiri. Untuk mengetahui informasi selengkapnya, lihat Pedoman Desain Wear OS.