Osoby i rozmowy

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


Przestrzeń do rozmów to wydzielony obszar powiadomień dotyczących rozmów w czasie rzeczywistym między użytkownikami.
Ilustracja 1. Pokój do 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 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

Jeśli powiadomienie spełnia wymagania dotyczące rozmowy, platforma wyświetli je jako dymek w panelu powiadomień.
Ilustracja 2. Powiadomienie uruchamiane jako dymek z zasobnika powiadomień.

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() lub setShortcutInfo(). 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ść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ą na CATEGORY_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.

Testowanie powiadomień o rozmowach i skrótów

Przytrzymanie rozmowy otwiera menu działań związanych z rozmową.
Rysunek 3. Możesz sprawdzić, czy powiadomienie o rozmowie jest prawidłowo skonfigurowane, przytrzymując je i sprawdzając, czy wyświetla się menu rozmowy.

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

Rozmowy wyświetlane w widżetach Rozmowa
Rysunek 1. Rozmowy wyświetlane w widżetach 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”.

Interfejs wyboru widżetów do dodawania nowego widżetu rozmowy
Rysunek 2. Interfejs wyboru widżetów do dodawania nowego widżetu rozmów.

Wykonaj te czynności:

  1. 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.
  2. Przeciągnij widżet na ekran główny. Powinna być dostępna lista aktywnych lub ostatnich rozmów z aplikacji użytkownika A.
  3. Teraz na urządzeniu użytkownika B wyślij wiadomość testową do użytkownika A.
  4. Na urządzeniu użytkownika A sprawdź, czy widżet został zaktualizowany i wyświetla powiadomienie o wiadomości od użytkownika B.
  5. 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.