Notifikasi dan widget percakapan

Android 11 menambahkan dukungan untuk menyesuaikan perilaku dan penempatan Notifikasi Percakapan pada bayangan Notifikasi berdasarkan prioritas dan tingkat peringatan, memungkinkan Percakapan ditandai sebagai Penting dan gelembung khusus percakapan diluncurkan di ruang Percakapan.

Berdasarkan fitur-fitur Android 11 ini, Android 12 menawarkan dua fitur Percakapan baru:

  • Fitur Percakapan Terkini di Pengaturan memungkinkan pengguna menyesuaikan perilaku notifikasi untuk percakapan terkini tanpa menunggu notifikasi.

  • Fitur Widget Percakapan memungkinkan pengguna membuka obrolan dengan mudah di layar beranda, memberikan tampilan cepat percakapan terkini.

Dokumen ini menjelaskan aspek penerapan, penyesuaian, dan validasi notifikasi dan widget percakapan.

Ikhtisar Pemberitahuan Percakapan

Android 11 memperkenalkan sistem primitif baru, Percakapan, yang diwakili oleh objek pintasan berbagi yang sudah ada (yang diluncurkan dengan Android 9).

Percakapan primitif dapat digunakan sebagai berikut:

  • Untuk berbagi data Percakapan antar aplikasi di seluruh sistem melalui Sharesheet (sudah ada di Android 10).

  • Untuk menggerakkan gelembung ( pintasan di Android 11). Lihat Gambar 1 .

  • Untuk berpartisipasi dalam ruang Percakapan baru di atas bayangan Notifikasi (diimplementasikan di Android 11). Lihat Gambar 2 .

  • Untuk membuat Widget Percakapan (diimplementasikan di Android 12).

    conv_bubbles

    Gambar 1: Notifikasi diluncurkan sebagai gelembung dari panel samping notifikasi

    conv_notification

    Gambar 2: Ruang percakapan terletak di atas bayangan Notifikasi

Selain menghubungkan ke pintasan yang mewakili percakapan, notifikasi juga menggunakan MessagingStyle untuk menyertakan pesan terakhir percakapan di ruang Percakapan.

Mitra RUPS wajib melaksanakan hal-hal sebagai berikut:

  • Ruang Percakapan baru sebagai bagian terpisah di atas bayangan Pemberitahuan.
  • Gaya notifikasi yang mengizinkan dan mendukung pola gelembung khusus Percakapan.

Mitra yang melaksanakan Percakapan wajib menerapkan Percakapan penting juga. Namun, penerapan Percakapan dapat diselaraskan dengan konsep OEM yang serupa. Secara keseluruhan, mitra memiliki kebebasan untuk menyelaraskan bagian percakapan dengan UI Sistem spesifik mereka. Mitra tidak perlu mengubah atau mengimplementasikan kode/ekstensi HAL/driver/kernel.

Lihat implementasi referensi berikut di bagian SystemUI & PeopleService di AOSP:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Validasi

Untuk memastikan bahwa versi fitur Anda berfungsi sebagaimana mestinya, verifikasi hal berikut:

  1. Aplikasi yang sepenuhnya mendukung API Percakapan akan melihat notifikasinya di bagian baru, dan dapat menyesuaikan notifikasi tersebut melalui percakapan, bukan dengan NotifikasiChannel umum.

  2. Gelembung khusus percakapan berfungsi.

Untuk memvalidasi penerapannya, gunakan pengujian berikut dalam paket notifikasi:

  • tes CTS.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Tes Pemverifikasi CTS.

    cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
    
    

Ikhtisar Widget Percakapan

Di Android 12, fitur Widget Percakapan dibangun berdasarkan representasi Percakapan yang dibuat di Android 11 (seperti yang dijelaskan di bagian sebelumnya) dengan memungkinkan aplikasi memberikan status untuk percakapan tersebut yang ditampilkan di Widget Percakapan.

conv_widgets

Gambar 3: Percakapan yang ditampilkan di Widget Percakapan

Fitur Widget Percakapan di Android 12 mendorong koneksi dengan memungkinkan pengguna membuka obrolan dengan mudah di layar beranda. Widget adalah pintasan yang disempurnakan yang memungkinkan pengguna kembali ke percakapan mereka secara efisien sambil menampilkan cuplikan status percakapan.

Mitra harus menerapkan hal berikut:

  1. Widget yang disediakan oleh SystemUI.
  2. Alur untuk menambahkan widget ini dari layar pemilihan widget.
  3. Dukungan untuk mengubah ukuran widget sebagai berikut:

Waspadai ketergantungan berikut saat menerapkan Widget Percakapan:

  • Mitra tidak perlu mengubah atau mengimplementasikan kode HAL/driver/kernel.
  • Status API, yang memungkinkan aplikasi menambahkan informasi status atau ketersediaan ke percakapan dan widget terkait, digunakan untuk implementasi.
  • Prosesnya sama pada implementasi perangkat baru dan implementasi peningkatan.
  • Fitur Widget Percakapan memiliki ketergantungan pada fitur baru yang diluncurkan di Android 12, yang menyimpan cache percakapan yang baru-baru ini dilihat (dari notifikasi, misalnya). Fitur terakhir ini memungkinkan untuk memperluas daftar percakapan yang berpotensi ditambahkan pengguna ke layar beranda mereka.

Lihat implementasi referensi berikut dalam file SystemUI dan Launcher3:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Kustomisasi

Fitur Widget Percakapan tidak dapat diaktifkan atau dinonaktifkan. Namun, mitra dapat mengubah tata letak templat widget, selama persyaratan GMS dipenuhi.

Validasi

Untuk memastikan bahwa versi fitur Anda berfungsi sebagaimana mestinya, verifikasi hal berikut:

  1. Saat menekan lama Peluncur, Widget Percakapan baru untuk Percakapan dapat ditambahkan melalui pemilih widget. Lihat gambar 4 untuk UI pemilih Widget:

    widget_picker

    Gambar 4: UI pemilih widget untuk menambahkan Widget Percakapan baru

  2. Saat mengirimkan notifikasi ke perangkat dari Percakapan yang dipilih, widget diperbarui untuk mencerminkan notifikasi tersebut.

  3. Saat menerapkan status pada Percakapan tersebut menggunakan API ConversationStatus , widget mencerminkan status tersebut.

  4. Pengguna dapat mengubah ukuran widget dan widget dapat mengubah ukurannya berdasarkan Peluncur mereka saat ini. Tata letak widget Anda harus berfungsi dengan baik dengan ukuran Peluncur berbeda di perangkat berbeda dan saat mengubah ukuran widget.

Untuk memvalidasi penerapannya, gunakan pengujian berikut dalam paket notifikasi:

  • Tes CTS (PeopleManagerTest) untuk permukaan API.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Tes manual untuk persyaratan RUPS - Percakapan.