Inisiatif orang dan percakapan adalah inisiatif multitahun Android yang bertujuan untuk mengutamakan orang dan percakapan dalam permukaan sistem ponsel. Prioritas ini didasarkan pada fakta bahwa komunikasi dan interaksi dengan orang lain masih menjadi area fungsional yang paling bernilai dan penting bagi sebagian besar pengguna kami di seluruh demografi.
Sejumlah fitur diperkenalkan di Android 11 untuk mendukung inisiatif orang dan percakapan.
Ruang percakapan
![Ruang percakapan adalah area notifikasi khusus untuk percakapan
real-time antar-manusia.](https://developer.android.com/static/images/guide/topics/ui/conversations-conv-space.png?authuser=6&hl=id)
Pada perangkat genggam, ada bagian terpisah di atas menu notifikasi yang hanya berisi percakapan real-time dengan orang (seperti panggilan dan pesan chat, termasuk chat grup). Notifikasi di ruang ini terlihat dan bertindak berbeda dari notifikasi non-percakapan di banyak ponsel:
- Desainnya berbeda, dengan penekanan kuat pada avatar yang mewakili orang-orang, dan dipadukan dengan aplikasi yang membawa percakapan.
- Ketukan pada notifikasi akan membuka percakapan di aplikasi (atau balon, jika percakapan tersebut sebelumnya sudah disetel ke balon), dan ketukan pada tanda sisipan akan memperluas pesan baru dalam menu hingga ke panjang maksimumnya dengan daftar opsi yang lengkap.
- Tindakan khusus percakapan ditawarkan (beberapa dengan menekan lama):
- Tandai percakapan ini sebagai prioritas
- Promosikan percakapan ini ke balon (hanya ditampilkan jika aplikasi mendukung balon)
- Matikan notifikasi untuk percakapan ini
- Setel suara atau getaran khusus untuk percakapan ini
Percakapan dalam Balon
![Jika notifikasi memenuhi persyaratan percakapan, platform
akan meluncurkannya sebagai balon dari panel samping notifikasi.](https://developer.android.com/static/images/guide/topics/ui/conversations-bubble.gif?authuser=6&hl=id)
Mulai Android 11, Balon dapat diawali dari notifikasi di bagian Percakapan. Hanya notifikasi dengan pintasan atribusi yang dapat muncul sebagai balon. Percakapan akan otomatis muncul sebagai balon jika ditandai sebagai penting atau dipicu muncul sebagai balon dalam menu notifikasi.
Pintasan Percakapan
Pintasan ke percakapan muncul pada peluncur dan bersamaan dengan pintasan berbagi berdurasi panjang dalam sharesheet.
Pedoman API
Bagian ini menjelaskan API untuk menambahkan dukungan di aplikasi pada ruang yang disediakan sistem yang menunjukkan orang dan percakapan.
Pintasan untuk Percakapan
Untuk berpartisipasi dalam inisiatif yang berfokus pada percakapan ini, aplikasi harus menyediakan pintasan berdurasi panjang bagi sistem. Sebaiknya gunakan pintasan berbagi berdurasi panjang. Jika perlu, Anda dapat menggunakan pintasan dinamis di Android 11, tetapi kami dapat menghapus opsi ini di masa mendatang.
Untuk memublikasikan pintasan ke
percakapan, panggil metode
ShortcutManagerCompat
setDynamicShortcuts()
,
addDynamicShortcuts()
,
atau pushDynamicShortcut()
(yang secara otomatis mengelola batas pintasan untuk developer). Pintasan ini harus
berdurasi panjang
dan memiliki data Person
yang dilampirkan untuk satu atau beberapa orang, dan mengidentifikasi peserta lain dalam
percakapan tersebut. Sebaiknya Anda juga menyetel LocusIdCompat
.
Jika percakapan sudah tidak ada, aplikasi dapat menghapus pintasan dengan
removeLongLivedShortcuts()
;
tindakan ini akan menyebabkan sistem menghapus semua data yang terkait dengan percakapan.
Meskipun pintasan dapat dihapus, aplikasi tidak boleh menghapus pintasan yang di-cache
kecuali benar-benar diperlukan; pintasan mungkin di-cache karena pengguna
berinteraksi dengan pintasan tersebut untuk mengubah pengalaman mereka, dan menghapus pintasan akan
mengurungkan perubahan tersebut, menyebabkan pengguna mengalami frustrasi.
Notifikasi Percakapan
Notifikasi dianggap sebagai notifikasi percakapan jika hal berikut berlaku:
Notifikasi menggunakan
MessagingStyle
.(Hanya jika aplikasi menargetkan Android 11 atau yang lebih baru) Notifikasi diatribusikan dengan pintasan berbagi dinamis atau di-cache berdurasi panjang yang valid. Notifikasi dapat menyetel atribusi ini dengan memanggil
setShortcutId()
atausetShortcutInfo()
. Jika aplikasi menargetkan Android 10 atau yang lebih rendah, notifikasi tidak harus diatribusikan dengan pintasan, seperti yang dibahas di bagian opsi penggantian.Pengguna belum mendemosikan percakapan dari bagian percakapan melalui setelan saluran notifikasi pada saat memposting.
Menggunakan LocusIdCompat
Kecerdasan pada perangkat menentukan percakapan yang kemungkinan besar
diminati pengguna. Di antara sinyal yang paling penting adalah keterkinian dan
frekuensi sesi percakapan dalam setiap percakapan. Sistem mengetahui
hal-hal tentang interaksi dengan sebuah percakapan dari pintasan Peluncur atau dalam
notifikasi jika diberi tag dengan benar. Namun, sistem tidak mengetahui
percakapan yang terjadi sepenuhnya dalam aplikasi, kecuali jika interaksi tersebut
juga diberi tag. Jadi, kami sangat menyarankan agar Anda melampirkan LocusIdCompat
ke
pintasan
dan membuat anotasi aktivitas dalam aplikasi atau fragmen dengan
LocusIdCompat
atribusi. Gunakan LocusIdCompat
untuk memungkinkan sistem saran memberi peringkat percakapan dengan benar, dan untuk memungkinkan
sistem menampilkan waktu interaksi terakhir pengguna yang benar (termasuk
interaksi dalam aplikasi) dengan percakapan. Jika Anda menggunakan
setShortcutInfo()
untuk mengaitkan percakapan dengan pintasan, sistem percakapan akan secara otomatis menyertakan LocusIdCompat
yang sesuai.
Persyaratan ruang percakapan untuk aplikasi yang menargetkan Android 10 atau yang lebih rendah
Jika aplikasi tidak menargetkan Android 11, pesannya masih dapat muncul di ruang percakapan. Namun, aplikasi tetap harus memenuhi persyaratan tertentu. Bagian ini menjelaskan persyaratan untuk aplikasi tersebut dan perilaku penggantian jika aplikasi tidak memenuhi persyaratan.
Persyaratan utama untuk berpartisipasi dalam ruang pesan adalah aplikasi harus
menerapkan notifikasi MessagingStyle
,
dan notifikasi harus merujuk pada
pintasan berdurasi panjang dari notifikasi yang dipublikasikan pada
saat notifikasi itu diposting. Notifikasi yang memenuhi persyaratan ini
akan muncul di ruang percakapan dengan perilaku ini:
- Notifikasi ditampilkan dalam gaya percakapan
- Tombol Balon ditawarkan, jika diterapkan
- Fungsi khusus percakapan ditawarkan secara inline
Jika notifikasi tidak memenuhi persyaratan ini, platform akan menggunakan opsi penggantian untuk memformat notifikasi. Jika notifikasi memenuhi persyaratan salah satu kasus penggantian, notifikasi akan ditampilkan di ruang percakapan dengan format khusus. Jika tidak memenuhi syarat untuk salah satu opsi penggantian, notifikasi tidak akan ditampilkan di ruang percakapan.
Penggantian: Jika MessagingStyle digunakan, tetapi tidak ada pintasan yang disediakan
Jika aplikasi menargetkan Android 10 atau yang lebih lama dan notifikasi menggunakan
MessagingStyle
,
tetapi tidak mengatribusikan pesan dengan pintasan, notifikasi
akan ditampilkan di ruang percakapan dengan perilaku ini:
- Notifikasi ditampilkan dalam gaya percakapan
- Tidak ada tombol balon yang ditawarkan
- Tidak ada fungsi khusus percakapan yang ditawarkan secara inline
Penggantian: Jika MessagingStyle tidak digunakan, tetapi aplikasinya adalah aplikasi pesan yang dikenali
Jika notifikasi tidak menggunakan
MessagingStyle
,
tetapi aplikasinya dikenali oleh platform sebagai aplikasi pesan, dan
parameter category
notifikasi disetel ke
msg
,
notifikasi ditampilkan di ruang percakapan dengan perilaku ini:
- Notifikasi ditampilkan dalam gaya pra-Android 11 yang lama
- Tidak ada tombol balon yang ditawarkan
- Tidak ada fungsi khusus percakapan yang ditawarkan secara inline
Panduan, penggunaan, dan pengujian
Bagian ini memberikan panduan umum tentang cara menggunakan dan menguji fitur percakapan.
Kapan saya harus menggunakan percakapan?
Notifikasi Percakapan dan pintasan terkait ditujukan untuk meningkatkan pengalaman pengguna percakapan real-time. Misalnya SMS, chat teks, dan panggilan telepon adalah percakapan real-time yang memungkinkan pengguna berkomunikasi dengan cepat. Pengguna tidak dapat melakukannya dengan email dan aktivitas yang tidak terkait dengan percakapan.
Kami telah memberi pengguna kemampuan untuk menghapus percakapan tertentu dari bagian percakapan jika mereka merasa percakapan tersebut tidak berada di ruang yang tepat.
Praktik terbaik
Untuk meningkatkan engagement dan memudahkan pengguna berinteraksi dengan orang dan percakapan di aplikasi Anda, sebaiknya ikuti praktik terbaik berikut.
- Untuk memastikan panggilan tak terjawab muncul di bagian percakapan
yang diprioritaskan dan muncul dengan benar di
widget konversi, format notifikasi panggilan tak terjawab
sebagai
conversations
dengan kategori yang disetel keCATEGORY_MISSED_CALL
. - Berikan avatar berkualitas tinggi (104 dp) untuk pengguna; jika tidak, sistem akan menggunakan inisial pengguna, yang merupakan pengalaman yang kurang menarik.
- Jangan
cancel
(membatalkan) notifikasi percakapan sebelum pengguna melihat pesan. Salah satu contohnya adalah membatalkan notifikasi saat membuka aplikasi dalam tampilan dengan pengguna yang tidak dapat melihat atau menangani pesan tersebut. Jika pengguna tidak diberi kesempatan untuk membaca atau menangani pesan, notifikasi yang dibatalkan dan balon terkait akan dihapus, sehingga menyebabkan hilangnya konteks percakapan. - Berikan
URI
data
untuk metadata terkait MIME yang dikaitkan dengan pesan, sehingga memberi Anda opsi untuk memberikan pengalaman notifikasi yang lebih kaya. - Gunakan
Android 12 status
API untuk membuat widget percakapan menjadi lebih menarik. - Gunakan praktik terbaik berikut untuk
pintasan percakapan.
- Publikasikan pintasan untuk percakapan masuk dan keluar dalam aplikasi yang
tidak mendorong notifikasi. Pesan masuk dan keluar untuk percakapan yang sama
harus memiliki ID pintasan yang sama Gunakan
pushDynamicShortcut()
untuk memublikasikan pintasan dan melaporkan penggunaan Anda. - Untuk menghindari pemangkasan avatar pintasan yang tidak disengaja, berikan
AdaptiveIconDrawable
untuk ikon pintasan. Lihat Menyediakan gambar pintasan untuk mengetahui detail selengkapnya. - Untuk membantu sistem mempromosikan pintasan Anda, ikuti panduan untuk mendapatkan peringkat terbaik. Pintasan akan diberi peringkat di platform sistem yang berbeda, termasuk Android Sharesheet jika pintasan tersebut adalah pintasan berbagi.
- Pastikan
intents
pintasan percakapan langsung diluncurkan ke percakapan yang berlaku. - Gunakan library compat untuk dengan mudah menetapkan pintasan Anda sebagai
conversation
yang terkait.
- Publikasikan pintasan untuk percakapan masuk dan keluar dalam aplikasi yang
tidak mendorong notifikasi. Pesan masuk dan keluar untuk percakapan yang sama
harus memiliki ID pintasan yang sama Gunakan
Menguji pintasan dan Notifikasi Percakapan
![Menekan lama pada percakapan akan membuka menu
tindakan yang terkait dengan percakapan.](https://developer.android.com/static/images/guide/topics/ui/conversations-testing.png?authuser=6&hl=id)
Jika Anda mematuhi pedoman ruang percakapan, percakapan akan muncul otomatis di ruang percakapan. Anda dapat memverifikasi bahwa pintasan terintegrasi dengan benar dengan menekan lama notifikasi. Jika integrasi dilakukan dengan benar, UI akan menampilkan tindakan terkait percakapan. Jika notifikasi tidak ditautkan ke pintasan, UI akan menampilkan teks yang menyatakan aplikasi tidak mendukung fitur percakapan.
Pintasan yang ditambahkan akan ditampilkan dengan menekan lama pada peluncur aplikasi. Pastikan untuk menguji apakah pintasan mengarahkan Anda ke tempat yang benar dalam aplikasi Anda.
Pintasan berbagi yang ditambahkan akan ditampilkan dalam baris berbagi langsung di sharesheet saat Anda membagikan konten yang dapat diterima oleh pintasan berbagi.
Widget Percakapan
![Percakapan yang ditampilkan di widget Percakapan](https://developer.android.com/static/images/guide/topics/ui/conversation-widgets.png?authuser=6&hl=id)
Di Android 12, fitur Widget Percakapan dibuat berdasarkan fitur orang dan percakapan yang diperkenalkan di Android 11 dengan memungkinkan aplikasi menampilkan status percakapan di widget Percakapan.
Widget percakapan mendorong interaksi pengguna dengan memungkinkannya membuka chat dengan mudah di layar utama. Widget ini adalah pintasan yang ditingkatkan dan memungkinkan pengguna kembali ke percakapan secara efisien selagi menampilkan cuplikan status percakapan atau informasi relevan lainnya.
Memvalidasi bahwa aplikasi mendukung widget percakapan
Untuk memvalidasi bahwa aplikasi mendukung widget percakapan, Anda harus memiliki setidaknya dua perangkat Android (keduanya menjalankan Android 12) dan dua akun pengguna (satu akun untuk setiap perangkat) untuk bertukar pesan. Untuk tujuan prosedur ini, kita akan menyebut akun tersebut sebagai "pengguna A" dan "pengguna B".
![UI alat pilih widget untuk menambahkan widget percakapan baru](https://developer.android.com/static/images/guide/topics/ui/widget-picker-conversation.png?authuser=6&hl=id)
Selesaikan langkah berikut:
- Di perangkat pengguna A, tekan lama peluncur. Di alat pilih widget, ketuk widget baru untuk percakapan seperti yang ditunjukkan pada gambar 2.
- Tarik widget ke layar utama. Daftar percakapan aktif atau terbaru dari aplikasi pengguna A harus dapat dipilih.
- Sekarang, di perangkat pengguna B, kirim pesan percobaan ke pengguna A.
- Kembali ke perangkat pengguna A, pastikan widget diupdate untuk merefleksikan notifikasi pesan dari pengguna B.
- Opsional: minta pengguna A dan pengguna B menyetel percakapan ke nilai status yang berbeda untuk memastikan bahwa widget mereka merefleksikannya dengan benar. Untuk daftar nilai status, lihat ConversationStatus.