Notifikasi di smartwatch menggunakan API yang sama dan memiliki struktur yang sama dengan notifikasi di ponsel.
Notifikasi dapat muncul di smartwatch dengan dua cara:
- Aplikasi seluler membuat notifikasi dan sistem akan otomatis menghubungkan notifikasi tersebut ke smartwatch.
- 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.
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:
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:
- Buat
Activitybaru yang memperluasConfirmationActivity. - Gunakan
RemoteActivityHelperdiActivitybaru untuk meluncurkan aplikasi telepon. - Saat membuat
Intentuntuk meluncurkanActivitydari notifikasi, tetapkan ekstraEXTRA_ANIMATION_TYPEkeOPEN_ON_PHONE_ANIMATION.
Catatan: Anda tidak dapat menggunakan BroadcastReceiver sebagai target
tindakan notifikasi.