Notifikasi dan Widget Percakapan

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

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

  • Fitur Percakapan Terbaru di Pengaturan memungkinkan pengguna untuk menyesuaikan perilaku pemberitahuan untuk percakapan terbaru tanpa menunggu pemberitahuan.

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

Dokumen ini menjelaskan aspek implementasi, penyesuaian, dan validasi Notifikasi Percakapan dan widget.

Ikhtisar Pemberitahuan Percakapan

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

Primitif Percakapan dapat digunakan sebagai berikut:

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

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

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

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

    conv_bubbles

    Gambar 1: Pemberitahuan diluncurkan sebagai gelembung dari laci pemberitahuan

    conv_notification

    Gambar 2: Ruang percakapan terletak di atas bayangan Notifikasi

Selain menautkan 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 Notifikasi.
  • Gaya pemberitahuan yang memungkinkan dan mendukung pola gelembung khusus Percakapan.

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

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 dimaksud, verifikasi berikut ini:

  1. Aplikasi yang sepenuhnya mendukung API Percakapan melihat pemberitahuannya di bagian baru, dan dapat menyesuaikan pemberitahuan itu dengan percakapan, bukan dengan Saluran Pemberitahuan umum.

  2. Gelembung khusus percakapan berfungsi.

Untuk memvalidasi implementasi, gunakan pengujian berikut dalam paket notifikasi:

  • tes CTS.

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

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

Ikhtisar Widget Percakapan

Di Android 12, fitur Widget Percakapan dibangun di atas representasi Percakapan yang dibuat di Android 11 (seperti yang dijelaskan di bagian sebelumnya) dengan mengizinkan 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 mempromosikan 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-hal berikut:

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

Waspadai dependensi berikut saat menerapkan Widget Percakapan:

  • Mitra tidak harus 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 peluncuran fitur baru di Android 12, yang menyimpan percakapan yang baru-baru ini dilihat (dari pemberitahuan, misalnya). Fitur terakhir ini memungkinkan untuk memperluas daftar percakapan yang berpotensi ditambahkan pengguna ke layar beranda mereka.

Lihat implementasi referensi berikut di 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 template widget, selama persyaratan GMS terpenuhi.

Validasi

Untuk memastikan bahwa versi fitur Anda berfungsi sebagaimana dimaksud, verifikasi berikut ini:

  1. Saat Peluncur ditekan lama, 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 mengirim pemberitahuan ke perangkat dari Percakapan yang dipilih, widget diperbarui untuk mencerminkan pemberitahuan tersebut.

  3. Saat menerapkan status ke Percakapan itu 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 yang berbeda pada perangkat yang berbeda dan saat mengubah ukuran widget.

Untuk memvalidasi implementasi, 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 GMS - Percakapan.