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 rozmów
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 tej przestrzeni wyglądają i działają inaczej niż powiadomienia niezwiązane z konwersacją na wielu telefonach:
- Projekt 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 karetki 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)
- Wyciszanie powiadomień dotyczących 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. Dymki rozmów pojawiają się automatycznie, 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 używanie długotrwałych skrótów do udostępniania. 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 ShortcutManagerCompatsetDynamicShortcuts(), 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ą.
Skróty można usunąć, ale 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 tagu
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 funkcję
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 obniżył rangi 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 wie jednak 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 LocusIdCompat do skrótu i dodanie do aktywności w aplikacji lub fragmentu adnotacji z powiązanym 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 Bubble 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 dymku
- Brak funkcji dotyczących konkretnej rozmowy jest oferowany w tekście.
Wycofanie: jeśli nie użyto MessagingStyle, ale aplikacja jest rozpoznawaną aplikacją do obsługi wiadomości
Jeśli powiadomienie nie używa
MessagingStyle
ale platforma rozpoznaje aplikację jako komunikator, a parametr powiadomienia
category
ma wartość
msg,
powiadomienie jest wyświetlane w przestrzeni rozmowy w ten sposób:
- Powiadomienie jest wyświetlane w starym stylu sprzed Androida 11.
- Brak przycisku dymku
- 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ć konwersacji?
Powiadomienia o rozmowach i powiązane skróty mają na celu poprawę komfortu 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 mają takich oczekiwań 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 priorytetowym okienku rozmowy i poprawnie wyświetlane w widżecie rozmowy, sformatuj powiadomienia o nieodebranych połączeniach jako
conversationsz kategorią ustawioną naCATEGORY_MISSED_CALL. - Zapewnij użytkownikom wysokiej jakości awatary (104 dp). W przeciwnym razie system użyje inicjałów osoby, co jest mniej angażujące.
- Nie
cancelpowiadomienia 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 lub 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
dataURI metadanych związanych z MIME, które są powiązane z wiadomościami. Dzięki temu możesz zapewnić lepsze wrażenia w przypadku powiadomień. - Użyj interfejsu
Android 12 statusAPI, 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
AdaptiveIconDrawabledla 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 jak najlepszej 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
intentsotwierają 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 konwersacją. Jeśli powiadomienie nie jest połączone ze skrótem, interfejs wyświetli tekst z informacją, ż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żetów 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 zachęcają użytkowników do interakcji, umożliwiając im ł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.
Sprawdź, czy Twoja aplikacja obsługuje widżety do prowadzenia 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 będziemy nazywać konta „użytkownik A” i „użytkownik B”.
Wykonaj następujące czynności:
- Na urządzeniu użytkownika A naciśnij i przytrzymaj launcher. W selektorze widżetów kliknij nowy widżet rozmowy, jak pokazano na ilustracji 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.