Inicjatywa dotycząca osób i rozmów to wieloletni projekt związany z Androidem, który ma na celu wyróżnienie osób i rozmów w interfejsach systemowych telefonu. Ten priorytet wynika z faktu, że komunikacja i interakcje z innymi osobami są nadal najbardziej cenionym i najważniejszym obszarem funkcjonalnym dla większości naszych użytkowników ze wszystkich grup demograficznych.
W Androidzie 11 wprowadziliśmy szereg funkcji, które wspierają inicjatywę dotyczącą osób i rozmów.
Pokój czatu

Na urządzeniach przenośnych u góry panelu powiadomień znajduje się osobna sekcja zawierająca tylko rozmowy w czasie rzeczywistym z innymi osobami (np. połączenia i wiadomości na czacie, w tym czaty grupowe). Powiadomienia w tym miejscu wyglądają i działają inaczej niż powiadomienia niezwiązane z rozmową na wielu telefonach:
- Wygląd jest inny, z dużym naciskiem na awatara reprezentującego osoby w połączeniu z aplikacją prowadzącą rozmowę.
- Kliknięcie powiadomienia otwiera rozmowę w aplikacji (lub dymek, jeśli rozmowa była wcześniej wyświetlana w dymku), a kliknięcie znaku ^ rozwija nowe wiadomości w panelu powiadomień do pełnej długości z pełną listą opcji.
- Dostępne są działania dotyczące rozmów (niektóre po długim naciśnięciu):
- Oznaczanie rozmowy jako priorytetowej
- Promuj tę rozmowę w dymku (wyświetlane tylko wtedy, gdy aplikacja obsługuje dymki)
- Wycisz powiadomienia dotyczące tej rozmowy
- Ustawianie niestandardowych dźwięków lub wibracji dla tej rozmowy
Rozmowy w dymkach

Od Androida 11 dymki można uruchamiać z poziomu powiadomień w sekcji Wątki. Tylko powiadomienia z powiązanym skrótem mogą być wyświetlane w dymkach. Rozmowy są automatycznie wyświetlane jako dymki, jeśli są oznaczone jako ważne lub są wywoływane w cieniu powiadomień.
Skróty w wątku
Skróty do rozmów pojawiają się w programie uruchamiającym i obok długoterminowych skrótów do udostępniania na arkuszu udostępniania.
Wytyczne dotyczące interfejsu API
W tej sekcji opisujemy interfejsy API, które umożliwiają dodanie do aplikacji obsługi udostępnianego przez system miejsca, w którym wyświetlają się osoby i rozmowy.
Skróty do Rozmów
Aby wziąć udział w tej inicjatywie, która koncentruje się na rozmowach, aplikacje muszą udostępniać systemowi długoterminowe skróty. Zdecydowanie zalecamy korzystanie z skrótów do udostępniania o długim okresie ważności. W razie potrzeby możesz używać dynamicznych skrótów na Androidzie 11, ale w przyszłości możemy usunąć tę opcję.
Aby opublikować skrót do rozmowy, wywołaj metody ShortcutManagerCompat
, setDynamicShortcuts()
, addDynamicShortcuts()
lub pushDynamicShortcut()
(które automatycznie zarządzają limitem skrótów dla dewelopera). Ten skrót musi być długotrwały i mieć dołączone Person
dane co najmniej 1 osoby, które identyfikują pozostałych uczestników rozmowy. Zalecamy też ustawienie parametru LocusIdCompat
.
Jeśli rozmowa już nie istnieje, aplikacja może usunąć skrót za pomocą removeLongLivedShortcuts()
. Spowoduje to usunięcie przez system wszystkich danych powiązanych z rozmową.
Chociaż skróty można usunąć, aplikacje nie powinny usuwać skrótów z pamięci podręcznej, chyba że jest to absolutnie konieczne. Skrót jest prawdopodobnie przechowywany w pamięci podręcznej, ponieważ użytkownik wchodził z nim w interakcję, aby zmienić sposób korzystania z urządzenia. Usunięcie skrótu spowoduje cofnięcie tych zmian, co może wywołać frustrację użytkownika.
Powiadomienia w rozmowach
Powiadomienie jest uznawane za powiadomienie o rozmowie, jeśli spełnione są te warunki:
Powiadomienie korzysta z
MessagingStyle
.(Tylko jeśli aplikacja jest kierowana na Androida 11 lub nowszego) Powiadomienie jest powiązane z prawidłowym długotrwałym dynamicznym lub buforowanym skrótem do udostępniania. Powiadomienie może ustawić to powiązanie, wywołując
setShortcutId()
lubsetShortcutInfo()
. Jeśli aplikacja jest przeznaczona na Androida 10 lub starszego, powiadomienie nie musi być powiązane ze skrótem, jak opisano w sekcji opcje rezerwowe.W momencie publikacji użytkownik nie zdegradował rozmowy w sekcji rozmów za pomocą ustawień kanału powiadomień.
Używanie LocusIdCompat
Inteligencja na urządzeniu określa rozmowy, które najbardziej interesują użytkownika. Do najważniejszych sygnałów należą aktualność i częstotliwość sesji rozmowy w każdej rozmowie. System wie o interakcjach z rozmową z poziomu skrótów w Launcherze lub w powiadomieniu, jeśli są one prawidłowo otagowane. System nie ma jednak informacji o rozmowach, które odbyły się w całości w aplikacji, chyba że te interakcje są również otagowane. Dlatego zdecydowanie zalecamy dołączenie elementu LocusIdCompat
do skrótu i dodanie do działania lub fragmentu w aplikacji adnotacji z powiązanym elementem LocusIdCompat
. Użyj LocusIdCompat
, aby umożliwić systemowi sugestii prawidłowe ocenianie rozmowy i wyświetlanie prawidłowego czasu ostatniej interakcji użytkownika z rozmową (w tym interakcji w aplikacji). Jeśli użyjesz znaku
setShortcutInfo()
do powiązania rozmowy ze skrótem, system rozmów
automatycznie dołączy odpowiedni znak LocusIdCompat
.
Wymagania dotyczące przestrzeni do rozmowy w przypadku aplikacji kierowanych na Androida 10 lub starszego
Jeśli aplikacja nie jest kierowana na Androida 11, jej wiadomości mogą nadal pojawiać się w przestrzeni rozmowy. Aplikacja musi jednak spełniać określone wymagania. W tej sekcji opisujemy wymagania dotyczące tych aplikacji oraz zachowanie rezerwowe, jeśli aplikacja nie spełnia tych wymagań.
Podstawowym wymaganiem dotyczącym udziału w przestrzeni wiadomości jest to, że aplikacja musi implementować powiadomienia MessagingStyle
, a powiadomienia muszą odwoływać się do długoterminowego skrótu z powiadomienia, które jest publikowane w momencie wysłania powiadomienia. Powiadomienia, które spełniają te wymagania, pojawiają się w pokoju rozmowy w następujący sposób:
- Powiadomienie jest wyświetlane w formie czatu.
- Przycisk jest dostępny, jeśli został zaimplementowany.
- Funkcje dotyczące konkretnej rozmowy są dostępne w tekście.
Jeśli powiadomienie nie spełnia tych wymagań, platforma używa opcji rezerwowych do sformatowania powiadomienia. Jeśli powiadomienie spełnia wymagania jednego z tych przypadków, jest wyświetlane w przestrzeni rozmowy ze specjalnym formatowaniem. Jeśli powiadomienie nie kwalifikuje się do żadnej z tych opcji, nie jest wyświetlane w przestrzeni rozmowy.
Wycofanie: jeśli używany jest styl MessagingStyle, ale nie podano skrótu
Jeśli aplikacja jest przeznaczona na Androida 10 lub starszego, a powiadomienie używa elementu
MessagingStyle
ale nie wiąże wiadomości ze skrótem, powiadomienie
jest wyświetlane w przestrzeni rozmowy w ten sposób:
- Powiadomienie jest wyświetlane w formie czatu.
- Brak przycisku bąbelkowego
- Brak funkcji dotyczących konkretnej rozmowy jest oferowany w tekście.
Wycofanie: jeśli nie używasz MessagingStyle, ale aplikacja jest rozpoznawaną aplikacją do obsługi wiadomości
Jeśli powiadomienie nie używa
MessagingStyle
ale platforma rozpoznaje aplikację jako aplikację do przesyłania wiadomości, a parametr
category
powiadomienia jest ustawiony na
msg
,
powiadomienie jest wyświetlane w przestrzeni rozmowy w ten sposób:
- Powiadomienie jest wyświetlane w starym stylu sprzed Androida 11.
- Brak przycisku bąbelkowego
- Brak funkcji dotyczących konkretnej rozmowy jest oferowany w tekście.
Wskazówki, użytkowanie i testowanie
W tej sekcji znajdziesz ogólne wskazówki dotyczące korzystania z funkcji konwersacji i ich testowania.
Kiedy należy używać rozmów?
Powiadomienia o rozmowach i powiązane z nimi skróty mają na celu zwiększenie wygody korzystania z rozmów w czasie rzeczywistym. Na przykład SMS-y, czaty tekstowe i rozmowy telefoniczne to rozmowy w czasie rzeczywistym, w których użytkownicy oczekują szybkiej komunikacji. Użytkownicy nie oczekują tego w przypadku e-maili i działań niezwiązanych z rozmowami.
Użytkownicy mogą usuwać rozmowy z sekcji rozmów, jeśli uważają, że nie pasują do danego pokoju.
Sprawdzone metody
Aby zwiększyć zaangażowanie i ułatwić użytkownikom interakcje z innymi osobami oraz rozmowy w aplikacji, zalecamy stosowanie tych sprawdzonych metod.
- Aby mieć pewność, że nieodebrane połączenia będą wyświetlane w zacienionym obszarze priorytetowego wątku i poprawnie w widżecie konwersji, sformatuj powiadomienia o nieodebranych połączeniach jako
conversations
z kategorią ustawioną naCATEGORY_MISSED_CALL
. - Zapewnij użytkownikom awatary wysokiej jakości (104 dp), w przeciwnym razie system użyje inicjałów osoby, co jest mniej angażujące.
- Nie
cancel
powiadomienia o rozmowie, zanim użytkownik nie zobaczy wiadomości. Przykładem może być anulowanie powiadomienia, gdy aplikacja zostanie otwarta w widoku, w którym użytkownik nie może zobaczyć wiadomości ani na nią odpowiedzieć. Jeśli użytkownik nie ma możliwości przeczytania wiadomości ani podjęcia działań w jej sprawie, anulowane powiadomienie i powiązany z nim dymek zostaną usunięte, co spowoduje utratę kontekstu rozmowy. - Podaj identyfikator URI
data
metadanych związanych z MIME powiązanych z wiadomościami, co daje możliwość zapewnienia bogatszych wrażeń w przypadku powiadomień. - Użyj interfejsu
Android 12 status
API, aby zwiększyć zaangażowanie w widżety do prowadzenia rozmów. - Stosuj te sprawdzone metody dotyczące skrótów do rozmów.
- Publikuj skróty do przychodzących i wychodzących rozmów w aplikacji, które nie wysyłają powiadomień push. Wiadomości przychodzące i wychodzące w ramach tej samej rozmowy powinny mieć ten sam identyfikator skrótu. Użyj
pushDynamicShortcut()
, aby opublikować skróty i zgłosić ich użycie. - Aby uniknąć przypadkowego przycięcia awatara skrótu, podaj
AdaptiveIconDrawable
ikony skrótu. Więcej informacji znajdziesz w artykule Przesyłanie obrazów skrótów. - Aby pomóc systemowi w promowaniu skrótu, postępuj zgodnie z wytycznymi dotyczącymi uzyskiwania najlepszych pozycji. Skrót jest klasyfikowany w różnych miejscach w systemie, w tym na arkuszu udostępniania Androida, jeśli jest to skrót do udostępniania.
- Sprawdź, czy skróty do rozmów
intents
otwierają odpowiednią rozmowę. - Użyj bibliotek zgodności, aby wygodnie ustawić skróty jako powiązane z
conversation
.
- Publikuj skróty do przychodzących i wychodzących rozmów w aplikacji, które nie wysyłają powiadomień push. Wiadomości przychodzące i wychodzące w ramach tej samej rozmowy powinny mieć ten sam identyfikator skrótu. Użyj
Testowanie powiadomień o rozmowach i skrótów

Jeśli będziesz przestrzegać wytycznych dotyczących pokoju rozmów, rozmowy powinny automatycznie pojawiać się w pokoju rozmów. Aby sprawdzić, czy skrót jest prawidłowo zintegrowany, naciśnij i przytrzymaj powiadomienie. Jeśli integracja została przeprowadzona prawidłowo, w interfejsie wyświetlą się działania związane z rozmową. Jeśli powiadomienie nie jest połączone ze skrótem, interfejs wyświetla tekst informujący, że aplikacja nie obsługuje funkcji konwersacji.
Dodane skróty wyświetlają się po naciśnięciu i przytrzymaniu ikony Menu z aplikacjami. Sprawdź, czy skróty prowadzą do właściwego miejsca w aplikacji.
Dodane skróty do udostępniania są wyświetlane w wierszu bezpośredniego udostępniania na arkuszu udostępniania, gdy udostępniasz treści, które może odbierać Twój skrót do udostępniania.
Widżety rozmów

W Androidzie 12 funkcja widżetu rozmów jest rozszerzeniem funkcji osób i rozmów wprowadzonej w Androidzie 11. Umożliwia ona aplikacjom wyświetlanie stanu rozmowy w widżetach rozmów.
Widżety do rozmów zwiększają zaangażowanie użytkowników, ponieważ umożliwiają łatwe otwieranie czatów na ekranie głównym. Te widżety to ulepszone skróty, które umożliwiają użytkownikom szybki powrót do rozmów, a jednocześnie wyświetlają fragmenty stanu rozmowy lub inne istotne informacje.
Sprawdzanie, czy aplikacja obsługuje widżety do rozmów
Aby sprawdzić, czy aplikacja obsługuje widżety do rozmów, musisz mieć co najmniej 2 urządzenia z Androidem 12 i 2 konta użytkowników (po jednym na każdym urządzeniu), aby wymieniać wiadomości. Na potrzeby tej procedury konta te będziemy nazywać „użytkownik A” i „użytkownik B”.

Wykonaj te czynności:
- Na urządzeniu użytkownika A kliknij i przytrzymaj launcher. W selektorze widżetów kliknij nowy widżet do rozmowy, jak pokazano na rysunku 2.
- Przeciągnij widżet na ekran główny. Powinna być dostępna lista aktywnych lub ostatnich rozmów z aplikacji użytkownika A.
- Teraz na urządzeniu użytkownika B wyślij wiadomość testową do użytkownika A.
- Na urządzeniu użytkownika A sprawdź, czy widżet został zaktualizowany i wyświetla powiadomienie o wiadomości od użytkownika B.
- Opcjonalnie: poproś użytkownika A i użytkownika B, aby ustawili różne wartości stanu rozmowy, aby mieć pewność, że widżety prawidłowo je odzwierciedlają. Listę wartości stanu znajdziesz w artykule ConversationStatus.