Osoby i rozmowy

Inicjatywa dotycząca osób i rozmów to wieloletnia inicjatywa Androida, której celem jest wyróżnienie osób i rozmów na powierzchniach systemowych telefonu. Ten priorytet wynika z faktu, że komunikacja i interakcja z innymi osobami jest nadal najbardziej cenionym i najważniejszym obszarem funkcjonalnym dla większości naszych użytkowników we wszystkich grupach demograficznych.

W Androidzie 11 wprowadziliśmy szereg funkcji, które wspierają inicjatywę dotyczącą osób i rozmów.

Obszar rozmowy


Obszar rozmów to specjalny obszar powiadomień przeznaczony do rozmów między ludźmi w czasie rzeczywistym.
Rysunek 1. Obszar rozmów.

Na urządzeniach przenośnych u góry obszaru powiadomień znajduje się osobna sekcja zawierająca tylko rozmowy z osobami w czasie rzeczywistym (takie jak połączenia i wiadomości na czacie, w tym czaty grupowe). Powiadomienia w tym obszarze wyglądają i działają inaczej niż powiadomienia niezwiązane z rozmowami na wielu telefonach:

  • Projekt jest inny, z silnym naciskiem na awatara reprezentującego osoby połączone z aplikacją, która prowadzi rozmowę.
  • Kliknięcie powiadomienia otwiera rozmowę w aplikacji (lub dymku, jeśli rozmowa była wcześniej w dymku), a kliknięcie kursora rozwija nowe wiadomości w obszarze powiadomień do pełnej długości z pełną listą opcji.
  • Dostępne są działania dotyczące konkretnych rozmów (niektóre po przytrzymaniu):
    • Oznacz tę rozmowę jako priorytetową
    • Przekształć tę rozmowę w dymek (opcja widoczna tylko wtedy, gdy aplikacja obsługuje dymki)
    • Wycisz powiadomienia dotyczące tej rozmowy
    • Ustaw niestandardowe dźwięki lub wibracje dla tej rozmowy

Rozmowy w dymkach

Jeśli powiadomienie spełnia wymagania dotyczące rozmowy, platforma uruchamia je jako dymek z obszaru powiadomień.
Rysunek 2. Powiadomienie uruchamiane jako dymek z obszaru powiadomień.

W Androidzie 11 i nowszych dymki można uruchamiać z powiadomień w sekcji Rozmowy. Tylko powiadomienia z powiązanym skrótem mogą być wyświetlane jako dymki. Rozmowy są automatycznie wyświetlane w dymkach, jeśli są oznaczone jako ważne lub jeśli w obszarze powiadomień jest ustawione wyświetlanie ich w dymkach.

Skróty do rozmów

Skróty do rozmów pojawiają się w menu z aplikacjami oraz obok trwałych skrótów do udostępniania w arkuszu udostępniania.

Wytyczne dotyczące interfejsu API

W tej sekcji opisujemy interfejsy API, które umożliwiają dodanie w aplikacji obsługi udostępnianego przez system obszaru, w którym wyświetlają się osoby i rozmowy.

Skróty dotyczące rozmów

Aby wziąć udział w tej inicjatywie skoncentrowanej na rozmowach, aplikacje muszą udostępniać systemowi trwałe skróty. Zdecydowanie zalecamy używanie trwałych skrótów udostępniania. W razie potrzeby możesz użyć skrótów dynamicznych w 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 zawierać dane Person dotyczące co najmniej 1 osoby, które identyfikują innych uczestników rozmowy. Zalecamy też ustawienie LocusIdCompat.

Jeśli rozmowa już nie istnieje, aplikacja może usunąć skrót za pomocą metody removeLongLivedShortcuts(). Spowoduje to usunięcie przez system wszystkich danych powiązanych z rozmową. Chociaż skróty można usuwać, 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 wszedł z nim w interakcję, aby zmienić sposób korzystania z aplikacji. Usunięcie skrótu spowoduje cofnięcie tych zmian, co może być dla użytkownika frustrujące.

Powiadomienia o rozmowach

Powiadomienie jest uznawane za powiadomienie o rozmowie, jeśli:

  • Powiadomienie używa MessagingStyle.

  • (Tylko jeśli aplikacja jest kierowana na Androida 11 lub nowszego) Powiadomienie jest powiązane z prawidłowym długotrwałym dynamicznym lub zapisanym w pamięci podręcznej skrótem udostępniania. Powiadomienie może ustawić to powiązanie, wywołując metodę setShortcutId() lub setShortcutInfo(). Jeśli aplikacja jest kierowana na Androida 10 lub starszego, powiadomienie nie musi być powiązane ze skrótem, jak opisano w sekcji Opcje zastępcze.

  • Użytkownik nie obniżył priorytetu rozmowy w sekcji rozmów w ustawieniach kanału powiadomień w momencie publikacji.

Używaj LocusIdCompat

Funkcje AI na urządzeniu określają, które rozmowy mogą najbardziej zainteresować użytkownika. Do najważniejszych sygnałów należą czas od poprzedniej wizyty i częstotliwość sesji rozmów w każdej rozmowie. System wie o interakcjach z rozmową za pomocą skrótów w Menu z aplikacjami lub w powiadomieniu, jeśli są one odpowiednio oznaczone. System nie wie jednak o rozmowach, które odbyły się w całości w aplikacji, chyba że te interakcje również są otagowane. Dlatego zdecydowanie zalecamy dołączenie do skrótu elementu LocusIdCompat i dodanie adnotacji do aktywności w aplikacji lub fragmentu 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 (w tym interakcji w aplikacji) z rozmową. Jeśli używasz setShortcutInfo(), aby powiązać rozmowę ze skrótem, system rozmów automatycznie dołącza odpowiedni element LocusIdCompat.

Wymagania dotyczące obszaru rozmowy w aplikacjach kierowanych na Androida 10 lub starszego

Jeśli aplikacja nie jest kierowana na Androida 11, jej wiadomości nadal mogą być wyświetlane w obszarze rozmów. Aplikacja musi jednak spełniać określone wymagania. W tej sekcji opisujemy wymagania dotyczące tych aplikacji oraz działanie zastępcze, jeśli aplikacja nie spełnia wymagań.

Podstawowym wymaganiem dotyczącym uczestnictwa w przestrzeni wiadomości jest to, że aplikacja musi implementować powiadomienia MessagingStyle, które muszą odwoływać się do trwałego skrótu z powiadomienia opublikowanego w momencie opublikowania powiadomienia. Powiadomienia, które spełniają te wymagania, pojawiają się w obszarze rozmowy w ten sposób:

  • Powiadomienie jest wyświetlane w stylu rozmowy.
  • Przycisk Dymek jest dostępny, jeśli został zaimplementowany.
  • Funkcje związane z rozmową są dostępne w trybie inline.

Jeśli powiadomienie nie spełnia tych wymagań, platforma używa opcji zastępczych do sformatowania powiadomienia. Jeśli powiadomienie spełnia wymagania jednego z przypadków zastępczych, jest wyświetlane w obszarze rozmowy ze specjalnym formatowaniem. Jeśli powiadomienie nie kwalifikuje się do żadnej z opcji zastępczych, nie jest wyświetlane w obszarze rozmowy.

Zastępczy: 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 MessagingStyle, ale nie wiąże wiadomości ze skrótem, powiadomienie jest wyświetlane w obszarze rozmowy w ten sposób:

  • Powiadomienie jest wyświetlane w stylu rozmowy.
  • Brak przycisku dymka
  • Brak funkcji związanych z rozmową w oknie czatu.

Wariant awaryjny: jeśli nie użyto MessagingStyle, ale aplikacja jest rozpoznawana jako aplikacja do obsługi wiadomości

Jeśli powiadomienie nie używa MessagingStyle, ale aplikacja jest rozpoznawana przez platformę jako aplikacja do obsługi wiadomości, a parametr category powiadomienia jest ustawiony na msg, powiadomienie jest wyświetlane w obszarze rozmowy w ten sposób:

  • Powiadomienie jest wyświetlane w starym stylu, sprzed Androida 11.
  • Brak przycisku dymka
  • Brak funkcji związanych z rozmową w oknie czatu.

Wskazówki, użytkowanie i testowanie

Ta sekcja zawiera ogólne wskazówki dotyczące korzystania z funkcji rozmowy i jej testowania.

Kiedy należy używać rozmów?

Powiadomienia o rozmowach i powiązane skróty mają na celu poprawę wrażeń użytkownika podczas 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ą usunąć daną rozmowę z sekcji rozmów, jeśli uważają, że nie jest ona we właściwym miejscu.

Sprawdzone metody

Aby zwiększyć zaangażowanie i ułatwić użytkownikom interakcje z innymi osobami i rozmowy na temat aplikacji, zalecamy stosowanie tych sprawdzonych metod.

  • Aby mieć pewność, że nieodebrane połączenia będą wyświetlane w obszarze powiadomień o rozmowach priorytetowych i będą prawidłowo widoczne w widżecie rozmów, sformatuj powiadomienia o nieodebranych połączeniach jako conversations z kategorią ustawioną na CATEGORY_MISSED_CALL.
  • Udostępnij użytkownikom awatary wysokiej jakości (104 dp). W przeciwnym razie system użyje inicjałów danej osoby, co jest mniej atrakcyjne.
  • Nie cancel powiadomienia o rozmowie, zanim użytkownik nie zobaczy wiadomości. Przykładem może być anulowanie powiadomienia podczas otwierania aplikacji 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 zareagowania na nią, anulowane powiadomienie i powiązany z nim dymek zostaną usunięte, co spowoduje utratę kontekstu rozmowy.
  • Podaj identyfikator URI data dla metadanych MIME powiązanych z wiadomościami, co pozwoli Ci na wyświetlanie bardziej rozbudowanych powiadomień.
  • Użyj interfejsu API Android 12 status, aby zwiększyć atrakcyjność widżetów rozmów.
  • Zastosuj 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 tej samej rozmowie powinny mieć ten sam identyfikator skrótu. Użyj pushDynamicShortcut(), aby opublikować skróty i zgłosić ich użycie.
    • Aby uniknąć niezamierzonego przycięcia awatara skrótu, podaj AdaptiveIconDrawable dla ikony skrótu. Więcej informacji znajdziesz w sekcji Dostarczanie obrazów skrótów.
    • Aby pomóc systemowi w promowaniu skrótu, postępuj zgodnie ze wskazówkami dotyczącymi uzyskiwania najlepszego rankingu. Skrót jest oceniany w różnych miejscach systemu, w tym w arkuszu udostępniania w Androidzie, jeśli jest to skrót do udostępniania.
    • Upewnij się, że skróty do rozmów intents uruchamiają bezpośrednio 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 powoduje otwarcie menu działań związanych z rozmową.
Ilustracja 3. Aby sprawdzić, czy powiadomienie o rozmowie jest prawidłowo skonfigurowane, naciśnij je i przytrzymaj, a następnie sprawdź, czy pojawi się menu rozmowy.

Jeśli będziesz przestrzegać wytycznych dotyczących obszaru rozmowy, rozmowy powinny automatycznie pojawiać się w obszarze rozmowy. 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świetlają się działania związane z rozmową. Jeśli powiadomienie nie jest powiązane ze skrótem, w interfejsie wyświetla się tekst informujący, że aplikacja nie obsługuje funkcji rozmowy.

Dodane skróty wyświetlają się po przytrzymaniu ikony Menu z aplikacjami. Sprawdź, czy skróty prowadzą do właściwego miejsca w aplikacji.

Dodane skróty udostępniania są wyświetlane w wierszu udostępniania bezpośredniego w panelu udostępniania, gdy udostępniasz treści, które można odebrać za pomocą skrótu udostępniania.

Widżety rozmów

rozmowy wyświetlane w widżetach rozmów,
Ilustracja 1. Rozmowy wyświetlane w widżetach rozmów.

W Androidzie 12 widżet rozmów rozszerza funkcję osób i rozmów wprowadzoną w Androidzie 11, umożliwiając aplikacjom wyświetlanie stanu rozmowy w widżetach rozmów.

Widżety 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 sprawne powracanie do rozmów, a jednocześnie wyświetlają fragmenty stanu rozmowy lub inne istotne informacje.

Sprawdzanie, czy aplikacja obsługuje widżety rozmów

Aby sprawdzić, czy aplikacja obsługuje widżety rozmów, musisz mieć co najmniej 2 urządzenia z Androidem (oba z Androidem 12) i 2 konta użytkowników (po jednym na każdym urządzeniu) do wymiany wiadomości. Na potrzeby tej procedury nazwiemy konta „użytkownik A” i „użytkownik B”.

Interfejs selektora widżetów do dodawania nowego widżetu rozmów
Rysunek 2. Interfejs selektora widżetów, w którym można dodać nowy widżet rozmów.

Wykonaj następujące czynności:

  1. Na urządzeniu użytkownika A naciśnij i przytrzymaj ikonę programu uruchamiającego. W selektorze widżetów kliknij nowy widżet rozmowy, jak pokazano na rysunku 2.
  2. Przeciągnij widżet na ekran główny. Powinna być dostępna lista aktywnych lub niedawnych 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 zawiera powiadomienie o wiadomości od użytkownika B.
  5. Opcjonalnie: poproś użytkowników A i B o ustawienie różnych wartości stanu rozmowy, aby sprawdzić, czy ich widżety prawidłowo je odzwierciedlają. Listę wartości stanu znajdziesz w artykule ConversationStatus.