Notifikasi di Wear OS

Notifikasi di smartwatch menggunakan API yang sama dan memiliki struktur yang sama dengan notifikasi di ponsel.

Notifikasi dapat muncul di smartwatch dengan dua cara:

  1. Aplikasi seluler membuat notifikasi dan sistem akan otomatis menghubungkan notifikasi tersebut ke smartwatch.
  2. Aplikasi wearable membuat notifikasi.

Untuk kedua skenario tersebut, gunakan class NotificationCompat.Builder untuk membuat notifikasi. Saat Anda membuat notifikasi dengan class builder, sistem akan menangani tampilan notifikasi dengan benar. Misalnya, saat Anda mengeluarkan notifikasi dari aplikasi seluler, setiap notifikasi akan muncul sebagai kartu di Aliran Notifikasi.

Tinjau contoh berikut untuk melihat tampilan notifikasi.

kartu notifikasi

Gambar 1. Notifikasi yang sama ditampilkan di ponsel dan smartwatch.

Gunakan salah satu subclass NotificationCompat.Style untuk mendapatkan hasil terbaik.

Catatan: Penggunaan RemoteViews akan menghapus dari notifikasi tata letak kustom, dan perangkat wearable hanya akan menampilkan teks dan ikon.

Notifikasi yang direkomendasikan untuk perangkat wearable

Gunakan notifikasi yang dapat diluaskan sebagai titik awal untuk semua notifikasi, karena ini adalah cara yang tepat untuk berinteraksi dengan pengguna perangkat wearable. Status yang diciutkan akan ditampilkan di baki notifikasi untuk pengalaman singkat yang mudah dilihat. Jika pengguna mengetuknya, notifikasi akan diluaskan sehingga pengalaman tindakan dan konten tambahan yang imersif dan dapat di-scroll akan terlihat.

Anda dapat Membuat notifikasi yang dapat diluaskan dengan cara yang sama seperti di perangkat seluler menggunakan subclass NotificationCompat.Style apa pun. Misalnya, notifikasi standar yang menggunakan NotificationCompat.MessagingStyle akan terlihat seperti ini:

notifikasi yang dapat diluaskan

Gambar 2. Contoh notifikasi MessagingStyle di Wear OS.

Anda dapat melihat notifikasi yang memiliki beberapa tindakan yang ditumpuk di bagian bawah status yang diluaskan.

Tips: Jika notifikasi menyertakan tindakan "balas", seperti untuk aplikasi pesan, Anda dapat meningkatkan perilaku notifikasi. Misalnya, Anda dapat mengaktifkan balasan input suara langsung dari respons teks perangkat wearable atau respons yang telah ditentukan sebelumnya dengan setChoices(). Untuk mengetahui informasi selengkapnya, baca Menambahkan tombol balas.

Menghindari Notifikasi duplikat

Secara default, notifikasi akan dihubungkan dari aplikasi ponsel pendamping ke smartwatch yang tersambung. Ini adalah opsi yang tepat jika Anda tidak menginstal aplikasi wearable.

Namun, jika Anda membangun aplikasi smartwatch mandiri dan aplikasi ponsel pendamping, aplikasi akan membuat notifikasi duplikat.

Wear OS menyediakan cara untuk menghentikan notifikasi duplikat menggunakan Bridging API. Hal ini sangat penting untuk aplikasi di perangkat yang menjalankan Wear OS 5 atau yang lebih tinggi, karena beberapa notifikasi yang dapat ditutup di perangkat seluler tidak dapat ditutup di perangkat Wear OS. Untuk mengetahui informasi selengkapnya, baca Menjembatani opsi untuk notifikasi.

Menambahkan fitur khusus wearable ke notifikasi

Jika Anda perlu menambahkan fitur khusus wearable ke notifikasi, Anda dapat menggunakan class NotificationCompat.WearableExtender untuk menentukan opsi. Untuk menggunakan API ini, lakukan hal berikut:

Catatan: Jika Anda menggunakan NotificationManager framework, beberapa fitur dari NotificationCompat.WearableExtender tidak akan berfungsi. Jadi, pastikan Anda menggunakan NotificationCompat

Contoh ini menunjukkan cara menyetel tindakan khusus Wear pada notifikasi dan juga menyetel ID penutupan. Saat notifikasi ditutup, semua notifikasi lain dengan ID penutupan yang sama akan ditutup di smartwatch dan di ponsel pendamping. Untuk mendapatkan ID penutupan, gunakan getDismissalId().

// 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()

Meluncurkan aplikasi telepon dari perangkat wearable

Jika Anda menggunakan notifikasi yang dihubungkan, setiap notifikasi akan otomatis menyertakan tombol untuk meluncurkan aplikasi di ponsel. Namun, jika Anda menggunakan notifikasi lokal, yang dibuat di smartwatch, gunakan langkah-langkah berikut untuk membuat tombol yang meluncurkan aplikasi di ponsel:

  1. Buat Activity baru yang memperluas ConfirmationActivity.
  2. Gunakan RemoteActivityHelper di Activity baru untuk meluncurkan aplikasi telepon.
  3. Saat membuat Intent untuk meluncurkan Activity dari notifikasi, tetapkan ekstra EXTRA_ANIMATION_TYPE ke OPEN_ON_PHONE_ANIMATION.
Pendekatan ini memandu pengguna untuk berinteraksi di ponsel mereka dan mengikuti persyaratan platform untuk meluncurkan proses latar belakang.

Catatan: Anda tidak dapat menggunakan BroadcastReceiver sebagai target tindakan notifikasi.