Notifikasi di Android Automotive OS

Notifikasi memberikan informasi singkat secara tepat waktu kepada pengemudi tentang peristiwa dari aplikasi Anda saat aplikasi sedang tidak digunakan. Notifikasi dapat muncul di Pusat Notifikasi, dan beberapa notifikasi juga dapat muncul sebagai notifikasi pendahuluan di layar. Untuk membuat notifikasi bagi Android Automotive OS, gunakan API NotificationBuilder yang sama seperti yang Anda gunakan untuk perangkat lain. Namun, untuk membantu memastikan keselamatan pengemudi dan meminimalkan gangguan, beberapa metode dan class API dibatasi atau berperilaku berbeda.

Perbedaan notifikasi di mobil

Untuk menciptakan lingkungan berkendara yang aman dan bebas gangguan, notifikasi di Android Automotive OS berbeda dari notifikasi di perangkat lain dalam beberapa hal:

  • Interaksi pengguna sederhana
  • Pembatasan UX berdasarkan kondisi berkendara

Interaksi pengguna sederhana

Untuk membantu memastikan pengemudi tetap fokus di jalan, notifikasi di mobil memiliki model interaksi pengguna yang disederhanakan dengan fitur berikut:

Tanpa kontrol rumit
Notifikasi tidak mengizinkan kontrol yang rumit, seperti mengetuk untuk memperluas notifikasi, menekan lama notifikasi untuk opsi tambahan, atau menggunakan kontrol berdasarkan gestur panjang geser.
Suara notifikasi
Notifikasi hanya memutar suara jika memicu notifikasi peringatan dini.
Tombol putar dan bisukan otomatis untuk notifikasi pesan

Android Automotive OS secara otomatis menambahkan tombol Putar dan Bisukan ke semua notifikasi pesan yang kompatibel dengan mobil.

  • Putar: membaca notifikasi kepada pengemudi menggunakan asisten digital default pengguna, seperti Asisten Google, atau sistem text-to-speech default kendaraan.
  • Bisukan: mencegah notifikasi peringatan dini tidak muncul di pesan selanjutnya dalam percakapan selama sisa waktu berkendara. Notifikasi pesan dari percakapan yang dibisukan akan tetap muncul di Pusat Notifikasi, dan pengemudi juga dapat membunyikannya kembali dari Pusat Notifikasi.

Opsi tampilan notifikasi sederhana

RemoteViews dan tampilan konten kustom tidak didukung. Selain itu, gaya notifikasi berikut juga tidak didukung:

  • BigPictureStyle
  • BigTextStyle
  • InboxStyle

Jika aplikasi Anda mengirimkan notifikasi ke Android Automotive OS menggunakan salah satu gaya notifikasi berikut, hanya teks ringkasan yang akan ditampilkan.

Pengelolaan saluran notifikasi yang disederhanakan

Android Automotive OS tidak mendukung saluran notifikasi dan kemampuan UI terkait, untuk mengurangi prevalensi tugas pengelolaan lengkap di perangkat Automotive.

Pembatasan UX berdasarkan kondisi berkendara

OS Android Automotive mencakup Mesin Pembatasan UX. Produsen mobil dapat menggunakan mesin ini untuk membatasi notifikasi berdasarkan kondisi berkendara mobil dalam hal berikut:

  • Memotong string notifikasi dengan panjang karakter tertentu
  • Menyembunyikan ringkasan pesan untuk notifikasi CATEGORY_MESSAGE
  • Membatasi jumlah notifikasi yang dapat ditampilkan di Pusat Notifikasi

Jenis resource yang didukung

Secara default, Android Automotive OS mendukung subset terbatas dari jenis resource yang dapat digunakan untuk notifikasi di perangkat lain. Subset ini mencakup jenis resource berikut:

  • Drawable
  • Ikon
  • Gambar

Persyaratan Kompatibilitas untuk notifikasi pesan

Untuk memberikan pengalaman pengguna yang konsisten dan tidak mengganggu, notifikasi pesan memiliki persyaratan khusus di Android Automotive OS.

Notifikasi pesan dianggap kompatibel dengan mobil jika memenuhi persyaratan berikut:

  • Ini termasuk dalam kategori CATEGORY_MESSAGE.
  • Kode ini menggunakan gaya Notification.MessagingStyle.
  • Data ini hanya mencakup pesan yang belum dibaca.
  • Kode ini memiliki Action tandai sudah dibaca yang memenuhi persyaratan berikut:

  • Jika notifikasi memiliki Action balas, Action memenuhi persyaratan berikut:

Pusat Notifikasi

Hampir semua notifikasi muncul di Pusat Notifikasi, meskipun notifikasi tersebut juga dipicu sebagai notifikasi pendahuluan. Notifikasi akan tetap ada di Pusat Notifikasi selama waktu berkendara.

Pengemudi dapat berinteraksi dengan notifikasi di Pusat Notifikasi. Bergantung pada produsen mobil, pengemudi dapat mengakses Pusat Notifikasi dengan salah satu atau kedua cara berikut:

  • Menggeser ke bawah dari bagian atas layar, mirip dengan panel samping notifikasi di perangkat lain.
  • Mengetuk tombol di antarmuka sistem.

Notifikasi yang dikelompokkan

Notifikasi terkait secara otomatis dikelompokkan dalam Pusat Notifikasi, seperti pada panel samping notifikasi di perangkat lain. Namun, saat pengemudi mengetuk ringkasan grup di Pusat Notifikasi, grup akan meluas untuk menampilkan semua notifikasinya, bukan meluncurkan PendingIntent.

Notifikasi yang tidak muncul di Pusat Notifikasi

Notifikasi berikut tidak muncul di Pusat Notifikasi:

  • Media playback. Informasi tentang pemutaran media yang sedang berlangsung dikumpulkan oleh Android Automotive OS dan ditampilkan di tempat khusus dalam antarmuka pengguna. Perhatikan bahwa setMediaSession harus dipanggil dengan token non-null agar notifikasi dapat dikenali sebagai pemutaran Media.
  • Notifikasi navigasi belokan demi belokan untuk CATEGORY_NAVIGATION.
  • Notifikasi layanan latar depan untuk aplikasi dengan akses sistem dan aplikasi yang ditandatangani dengan kunci platform dengan tingkat nilai penting yang lebih rendah dari IMPORTANCE_DEFAULT.

Notifikasi pendahuluan

Notifikasi pendahuluan muncul sebagai kartu notifikasi di bagian atas layar. Karena notifikasi pendahuluan menarik perhatian pengemudi, hanya picu notifikasi peringatan dini saat informasi yang penting adalah drive-kritis, sensitif waktu, dan dapat ditindaklanjuti. Hanya kategori notifikasi tertentu yang dapat memicu notifikasi pendahuluan.

Produsen mobil dapat memutuskan apakah akan mengizinkan notifikasi peringatan dini untuk muncul saat Pusat Notifikasi terbuka.

Cara aplikasi memicu notifikasi pendahuluan

Aplikasi memiliki persyaratan yang berbeda untuk memicu notifikasi pendahuluan bergantung pada apakah aplikasi memiliki hak istimewa sistem atau tidak.

Aplikasi dengan hak istimewa sistem dan aplikasi yang ditandatangani dengan kunci platform
Aplikasi tersebut dapat memicu notifikasi pendahuluan dengan menyetel nilai penting saluran notifikasi ke IMPORTANCE_HIGH atau lebih tinggi.
Semua aplikasi lainnya

Aplikasi dapat memicu notifikasi peringatan dengan menyetel nilai penting saluran notifikasi ke IMPORTANCE_HIGH atau lebih tinggi dan memastikan bahwa notifikasi termasuk dalam salah satu kategori berikut:

Kondisi notifikasi pendahuluan

Setelah aplikasi memicu notifikasi pendahuluan, notifikasi tersebut akan langsung muncul di layar mobil. Jika pengemudi tidak melakukan tindakan apa pun, notifikasi pendahuluan akan ditutup secara otomatis setelah delapan detik, kecuali dalam kasus berikut:

  • Notifikasi pendahuluan untuk panggilan masuk tertentu tidak dapat ditutup, dan notifikasi pendahuluan akan tetap ada hingga pengemudi menerima panggilan atau panggilan dihentikan. Agar memenuhi syarat sebagai notifikasi pendahuluan yang tidak dapat diabaikan untuk panggilan masuk, notifikasi harus memenuhi persyaratan berikut:

  • Notifikasi pendahuluan akan tetap ada jika aplikasi memperbarui notifikasi dalam waktu delapan detik.

Saat notifikasi pendahuluan ditolak, notifikasi akan tercantum di Pusat Notifikasi, kecuali jika notifikasi tersebut berupa notifikasi CATEGORY_NAVIGATION.

Batasan dan perubahan API Notifikasi untuk mobil

Bagian ini merangkum perbedaan tiap class dengan Notifications API berperilaku lain atau memiliki pembatasan untuk Android Automotive OS.

Notification.Builder

Tabel 1 dan 2 menjelaskan pembatasan dan perubahan API dalam class Notification.Builder.

Tabel 1. Perubahan pada metode publik untuk Notification.Builder

Metode publik Efek Deskripsi

addAction()

Tanpa pengoperasian bersyarat Notifikasi Notification.MessagingStyle harus menambahkan tindakan yang ditentukan dalam persyaratan kompatibilitas. Tindakan lain apa pun yang ditambahkan tidak akan dirender sebagai tombol Notifikasi.

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

Tanpa pengoperasian RemoteViews dan tampilan konten kustom tidak didukung.

setBadgeIconType()

setNumber()

Tanpa pengoperasian Badge notifikasi tidak didukung.

setChronometerCountDown()

setUsesChronometer()

Tanpa pengoperasian Penghitung mundur tidak didukung.
setColorized() Batasan berubah

Aplikasi bertanda platform: dapat dikonfigurasi, diizinkan secara default.

Aplikasi dengan hak istimewa sistem: dikonfigurasi oleh platform; tidak diizinkan secara default.

Semua aplikasi lain: dikonfigurasi oleh platform; tidak diizinkan secara default.

setFullScreenIntent() Perilaku berubah Tidak membuka intent secara otomatis.
setLargeIcon() Perilaku berubah Ikon besar ditampilkan di sebelah kanan notifikasi.
setLights() Tanpa pengoperasian Perangkat OS Android Automotive tidak memiliki lampu indikator LED.
setOngoing() Perilaku berubah

Perilaku berbeda jika notifikasi juga memicu notifikasi peringatan dini.

setOngoing() hanya membuat notifikasi pendahuluan tidak dapat diabaikan jika notifikasi pendahuluan ditujukan untuk panggilan masuk. Agar memenuhi syarat sebagai notifikasi pendahuluan yang tidak dapat diabaikan untuk panggilan masuk, notifikasi harus memenuhi setPublicVersion()

setVisibility()

Tanpa pengoperasian Mode pribadi tidak didukung.
setSettingsText() Tanpa pengoperasian Notifikasi tidak mendukung keterjangkauan yang terhubung ke setelan aplikasi. Pengemudi mengakses setelan aplikasi melalui aplikasi.
setTicker() Tanpa pengoperasian Teks ticker tidak didukung.

Tabel 2. Perubahan pada class bertingkat untuk Notification.Builder

Class bertingkat Efek Deskripsi

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

Tidak digunakan Hanya teks ringkasan yang ditampilkan. Notifikasi detail untuk gaya ini tidak didukung.
Notification.BubbleMetadata Tidak digunakan Balon tidak didukung.
Notification.MediaStyle Tersembunyi Notifikasi dengan gaya ini akan disembunyikan. Android Automotive OS mengelola interaksi antarmuka pengguna untuk notifikasi dan pemutaran media.
Notification.MessagingStyle Perilaku berubah

Notifikasi dengan gaya ini memiliki perbedaan berikut:

Notification.CarExtender

Notification.WearableExtender

Tidak digunakan Extender tidak didukung.

Notification.Action.Builder

Tabel 3 menjelaskan pembatasan dan perubahan API dalam class Notification.Action.Builder.

Tabel 3. Perubahan pada metode publik untuk Notification.Action.Builder

Metode publik Efek Deskripsi
Konstruktor publik Perilaku berubah Ikon yang ditentukan dalam konstruktor publik akan diabaikan.
addRemoteInput Perilaku berubah Untuk meminimalkan gangguan bagi pengemudi, asisten digital, seperti Asisten Google, akan menyisipkan respons pada pesan untuk pengguna tersebut. Pengguna tidak dapat mengetik pesan.
setAllowGeneratedReplies Tanpa pengoperasian Smart Reply tidak didukung.