Wear OS by Google mendukung gaya notifikasi untuk meningkatkan pengalaman pengguna pada jam tangan.
Gaya notifikasi yang paling umum adalah:
- BIG_TEXT_STYLE
- BIG_PICTURE_STYLE
- INBOX_STYLE
- MESSAGING_STYLE
Bagian di bawah membahas cara menambahkan
MESSAGING_STYLE
dan
BIG_TEXT_STYLE
ke notifikasi Anda. Untuk menggabungkan
gaya notifikasi lain, lihat contoh
Notifikasi
Wear.
Lihat referensi terkait berikut:
Membuat notifikasi MessagingStyle
Jika Anda memiliki aplikasi pesan chat, notifikasi harus menggunakan
NotificationCompat.MessagingStyle, yang ditambahkan di Android 7.0. Wear menggunakan pesan chat yang disertakan dalam notifikasi MessagingStyle
(lihat
addMessage()
) untuk memberikan pengalaman seperti aplikasi chat yang kaya dalam notifikasi yang diperluas.
Catatan:
Notifikasi yang diperluas
MessagingStyle
mewajibkan Anda memiliki versi minimal 1.5.0.2861804 dari
aplikasi pendamping Wear di ponsel Android yang tersambung.
Smart Reply

Wear memperkenalkan Smart Reply untuk notifikasi
MessagingStyle
. Smart Reply menyediakan pengguna pilihan yang jelas dan relevan secara kontekstual di notifikasi yang diperluas dan di RemoteInput
.
Pilihan tersebut menambah daftar tetap pilihan yang disediakan developer di
RemoteInput
menggunakan metode
setChoices()
.
Smart Reply memberi pengguna cara yang cepat (satu ketukan), senyap (tidak berbicara dengan suara keras), pribadi (pesan yang diterima pengguna tidak pernah meninggalkan jam tangan), dan andal (tidak perlu koneksi internet) untuk merespons pesan chat.
Respons Smart Reply dihasilkan oleh model machine learning yang sepenuhnya ada di jam tangan, menggunakan konteks yang tersedia dari notifikasi MessagingStyle. Tidak ada data notifikasi pengguna yang dikirimkan ke server Google untuk menghasilkan respons Smart Reply.
Guna mengaktifkan Smart Reply untuk tindakan notifikasi, Anda perlu melakukan langkah berikut:
-
Gunakan
NotificationCompat.MessagingStyle
. -
Panggil metode
setAllowGeneratedReplies(true)
untuk tindakan notifikasi. -
Pastikan tindakan notifikasi memiliki
RemoteInput
yang ditentukan (tempat respons itu berada).
Contoh berikut menunjukkan cara membuat notifikasi MessagingStyle dengan respons Smart Reply.
Kotlin
// Create an intent for the reply action val replyPendingIntent = Intent(this, ReplyActivity::class.java).let { replyIntent -> PendingIntent.getActivity(this, 0, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT) } // Create the reply action and add the remote input val action = NotificationCompat.Action.Builder( R.drawable.ic_reply_icon, getString(R.string.label), replyPendingIntent ) .addRemoteInput(remoteInput) // 1) allow generated replies .setAllowGeneratedReplies(true) .build() val noti = NotificationCompat.Builder(context, channelId) .setContentTitle("${messages.size} new messages with $sender") .setContentText(subject) .setSmallIcon(R.drawable.new_message) .setLargeIcon(aBitmap) // 2) set the style to MessagingStyle .setStyle( NotificationCompat.MessagingStyle(resources.getString(R.string.reply_name)) .addMessage(messages[0].text, messages[0].time, messages[0].sender) .addMessage(messages[1].text, messages[1].time, messages[1].sender) ) // 3) add an action with RemoteInput .extend(NotificationCompat.WearableExtender().addAction(action)).build()
Java
// Create an intent for the reply action Intent replyIntent = new Intent(this, ReplyActivity.class); PendingIntent replyPendingIntent = PendingIntent.getActivity(this, 0, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT); // Create the reply action and add the remote input NotificationCompat.Action action = new NotificationCompat.Action.Builder(R.drawable.ic_reply_icon, getString(R.string.label), replyPendingIntent) .addRemoteInput(remoteInput) // 1) allow generated replies .setAllowGeneratedReplies(true) .build(); Notification noti = new NotificationCompat.Builder() .setContentTitle(messages.length + " new messages with " + sender.toString()) .setContentText(subject) .setSmallIcon(R.drawable.new_message) .setLargeIcon(aBitmap) // 2) set the style to MessagingStyle .setStyle(new NotificationCompat.MessagingStyle(resources.getString(R.string.reply_name)) .addMessage(messages[0].getText(), messages[0].getTime(), messages[0].getSender()) .addMessage(messages[1].getText(), messages[1].getTime(), messages[1].getSender())) // 3) add an action with RemoteInput .extend(new WearableExtender().addAction(action)).build();
Menambahkan gambar ke notifikasi MessagingStyle
Anda dapat menambahkan gambar ke pesan notifikasi dengan menyetel jenis MIME yang tepat dan meletakkan URI ke gambar dalam metode NotificationCompat.MessagingStyle.Message.setData()
.
Berikut adalah cuplikan kode untuk menyetel data gambar jenis dalam notifikasi:
Kotlin
val message = NotificationCompat.MessagingStyle.Message("sticker", 1, "Jeff") .setData("image/png", stickerUri) val notification = NotificationCompat.Builder(context, channelId) .setStyle( NotificationCompat.MessagingStyle("Me").addMessage(message) ) .build()
Java
NotificationCompat.MessagingStyle.Message message = new Message("sticker", 1, "Jeff") .setData("image/png", stickerUri); NotificationCompat notification = new NotificationCompat.Builder() .setStyle(new NotificationCompat.MessagingStyle("Me") .addMessage(message)) .build();
Dalam cuplikan kode di atas, variabel stickerUri
adalah URI yang menunjuk pada lokasi yang dapat diakses publik, seperti dijelaskan di sini.
Membuat Notifikasi BigTextStyle
Anda dapat memasukkan konten teks yang diperluas ke notifikasi dengan menggunakan
BIG_TEXT_STYLE
. Pada perangkat genggam, pengguna dapat melihat konten yang diperluas dengan memperluas notifikasi. Di perangkat wearable, konten yang diperluas terlihat secara default ketika Anda menggunakan BigTextStyle
.

Untuk menambahkan konten yang diperluas ke notifikasi Anda, panggil
setStyle()
pada objek
NotificationCompat.Builder
, yang meneruskan instance ke
BigTextStyle
atau
InboxStyle
.
Misalnya, kode berikut menambahkan instance
NotificationCompat.BigTextStyle
ke notifikasi peristiwa, untuk menyertakan deskripsi peristiwa lengkap (yang menyertakan lebih banyak teks daripada yang dapat dimuat ke ruang yang disediakan untuk
setContentText()
).
Kotlin
// Specify the 'big view' content to display the long // event description that may not fit the normal content text. val bigStyle = NotificationCompat.BigTextStyle().run { bigText(eventDescription) } val notificationBuilder = NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_event) .setLargeIcon(BitmapFactory.decodeResource(resources, R.drawable.notif_background)) .setContentTitle(eventTitle) .setContentText(eventLocation) .setContentIntent(viewPendingIntent) .addAction(R.drawable.ic_map, getString(R.string.map), mapPendingIntent) .setStyle(bigStyle)
Java
// Specify the 'big view' content to display the long // event description that may not fit the normal content text. BigTextStyle bigStyle = new NotificationCompat.BigTextStyle(); bigStyle.bigText(eventDescription); NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_event) .setLargeIcon(BitmapFactory.decodeResource( getResources(), R.drawable.notif_background)) .setContentTitle(eventTitle) .setContentText(eventLocation) .setContentIntent(viewPendingIntent) .addAction(R.drawable.ic_map, getString(R.string.map), mapPendingIntent) .setStyle(bigStyle);
Perhatikan bahwa Anda dapat menambahkan gambar ikon besar ke setiap notifikasi menggunakan metode
setLargeIcon()
. Namun, ikon ini muncul sebagai gambar latar
besar di perangkat wearable dan tidak terlihat sebagus ketika diskalakan agar sesuai dengan layar perangkat
wearable. Untuk menambahkan gambar latar khusus perangkat wearable ke notifikasi, lihat
Menambahkan fitur spesifik
perangkat wearable untuk notifikasi. Untuk informasi selengkapnya tentang mendesain
notifikasi dengan gambar besar, lihat
Prinsip desain Wear OS.
Membuat notifikasi MediaStyle
Anda dapat menggunakan class
NotificationCompat.MediaStyle
untuk menyertakan kontrol pemutaran dalam notifikasi. Agar UI Sistem dapat mengidentifikasi notifikasi yang merepresentasikan sesi media aktif, dan merespons sesuai kondisi yang ada (misalnya, dengan menampilkan poster album di layar kunci), lampirkan
MediaSession.Token
menggunakan metode
setMediaSession(MediaSession.Token)
.
Catatan: Jika Anda menggunakan
NotificationCompat.MediaStyle
pada notifikasi lokal tanpa adanya sesi media terlampir, sistem akan menampilkan notifikasi sebagai notifikasi reguler dan mengabaikan detail gaya media.