Osoby i rozmowy

Inicjatywa „Osoby i rozmowy” to wieloletni projekt na Androidzie, który ma na celu zwiększenie znaczenia osób i rozmów w interfejsach systemowych telefonu. Priorytet ten 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 kilka funkcji, które wspierają inicjatywę „Osoby i rozmowy”.

Obszar rozmów


Przestrzeń do rozmów to wydzielony obszar powiadomień przeznaczony do rozmów w czasie rzeczywistym między użytkownikami.
Rysunek 1. Obszar 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 obszarze wyglądają i działają inaczej niż powiadomienia niezwiązane z rozmowami na wielu telefonach:

  • Mają inny wygląd, z silnym naciskiem na awatar reprezentujący osoby w połączeniu z aplikacją, w której prowadzona jest rozmowa.
  • Kliknięcie powiadomienia otwiera rozmowę w aplikacji (lub dymku, jeśli rozmowa była wcześniej wyświetlana w dymku), a kliknięcie kursora rozwija nowe wiadomości w panelu do pełnej długości z pełną listą opcji.
  • Dostępne są działania dotyczące rozmowy (niektóre po długim naciśnięciu):
    • Oznacz tę rozmowę jako priorytetową.
    • Wyświetl tę rozmowę w dymku (tylko jeśli aplikacja obsługuje dymki).
    • Wycisz powiadomienia o tej rozmowie.
    • 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 panelu powiadomień.
Rysunek 2. Powiadomienie uruchamiane jako dymek z panelu powiadomień.

Od Androida 11, Dymki można uruchamiać z powiadomień w sekcji Rozmowy. Tylko powiadomienia powiązane ze skrótem mogą być wyświetlane w dymku. Rozmowy są automatycznie wyświetlane w dymku, jeśli są oznaczone jako ważne lub jeśli w panelu powiadomień zostanie uruchomiony dymek.

Skróty do rozmów

Skróty do rozmów pojawiają się w Menu z aplikacjami oraz obok długoterminowych, 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 obszaru dostarczanego przez system, w którym wyświetlane są osoby i rozmowy.

Skróty do rozmów

Aby wziąć udział w tej inicjatywie skupionej na rozmowach, aplikacje muszą udostępniać systemowi długoterminowe skróty. Zdecydowanie zalecamy używanie długoterminowych skrótów do udostępniania. W razie potrzeby w Androidzie 11 możesz używać dynamicznych skrótów, ale w przyszłości możemy usunąć tę opcję.

Aby opublikować skrót do rozmowy, wywołaj ShortcutManagerCompat metody setDynamicShortcuts(), addDynamicShortcuts(), lub pushDynamicShortcut() (która automatycznie zarządza limitem skrótów dla dewelopera). Ten skrót musi być długoterminowy i mieć dołączone dane Person dotyczące co najmniej 1 osoby, które identyfikują pozostałych 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 zapisanych w pamięci podręcznej , chyba że jest to absolutnie konieczne. Skrót jest prawdopodobnie zapisany w pamięci podręcznej, ponieważ użytkownik wszedł z nim w interakcję, aby zmienić swoje wrażenia, a usunięcie skrótu spowoduje cofnięcie tych zmian, co może być frustrujące dla użytkownika.

Powiadomienia o rozmowach

Powiadomienie jest uznawane za powiadomienie o rozmowie, jeśli spełnione są te warunki:

  • Powiadomienie używa MessagingStyle.

  • (Tylko jeśli aplikacja jest kierowana na Androida 11 lub nowszego) Powiadomienie jest powiązane z prawidłowym długoterminowym skrótem do udostępniania (dynamicznym lub zapisanym w pamięci podręcznej). 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 awaryjne.

  • W momencie publikowania powiadomienia użytkownik nie obniżył rangi rozmowy w sekcji rozmów za pomocą ustawień kanału powiadomień.

Używanie LocusIdCompat

Funkcje inteligentne na urządzeniu określają rozmowy, które mogą najbardziej zainteresować użytkownika. Do najważniejszych sygnałów należą aktualność i częstotliwość sesji rozmowy w każdej rozmowie. System wie o interakcjach z rozmową ze skrótów w Menu z aplikacjami 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 powiązanej adnotacji 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żywasz setShortcutInfo() do powiązania rozmowy ze skrótem, system rozmów automatycznie dołączy odpowiedni LocusIdCompat.

Wymagania dotyczące obszaru rozmów 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 obszarze rozmów. Aplikacja musi jednak spełniać określone wymagania. W tej sekcji opisujemy wymagania dotyczące tych aplikacji oraz zachowanie awaryjne, jeśli aplikacja nie spełnia tych wymagań.

Podstawowym wymaganiem dotyczącym udziału w obszarze wiadomości jest to, że aplikacja musi implementować MessagingStyle powiadomienia, a powiadomienia muszą odwoływać się do a długoterminowego skrótu z powiadomienia opublikowanego w momencie opublikowania powiadomienia. Powiadomienia, które spełniają te wymagania, pojawiają się w obszarze rozmów z tym zachowaniem:

  • Powiadomienie jest wyświetlane w stylu rozmowy.
  • Jeśli jest zaimplementowany, dostępny jest przycisk Dymek.
  • Funkcje specyficzne dla rozmowy są dostępne w tekście.

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

Opcja awaryjna: używany jest MessagingStyle, ale nie podano skrótu

Jeśli aplikacja jest kierowana 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 rozmów z tym zachowaniem:

  • Powiadomienie jest wyświetlane w stylu rozmowy.
  • Nie jest dostępny przycisk dymka.
  • Funkcje specyficzne dla rozmowy nie są dostępne w tekście.

Opcja awaryjna: nie jest używany MessagingStyle, ale aplikacja jest rozpoznawana jako aplikacja do obsługi wiadomości

Jeśli powiadomienie nie używa MessagingStyle ale platforma rozpoznaje aplikację jako aplikację do obsługi wiadomości, a parametr category powiadomienia jest ustawiony na msg, powiadomienie jest wyświetlane w obszarze rozmów z tym zachowaniem:

  • Powiadomienie jest wyświetlane w starym stylu sprzed Androida 11.
  • Nie jest dostępny przycisk dymka.
  • Funkcje specyficzne dla rozmowy nie są dostępne w tekście.

Wskazówki, użycie i testowanie

W tej sekcji znajdziesz ogólne wskazówki dotyczące korzystania z funkcji rozmów i ich testowania.

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

Powiadomienia o rozmowach i powiązane z nimi skróty mają na celu poprawę wrażeń użytkownika podczas rozmów w czasie rzeczywistym. Na przykład SMS-y, czaty tekstowe i połączenia 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 pasuje ona do tego obszaru.

Sprawdzone metody

Aby zwiększyć zaangażowanie i ułatwić użytkownikom interakcję z osobami i rozmowami w aplikacji, zalecamy stosowanie tych sprawdzonych metod.

  • Aby nieodebrane połączenia były wyświetlane w panelu powiadomień o rozmowach z priorytetem i prawidłowo wyświetlały się w widżecie rozmów, sformatuj powiadomienia o nieodebranych połączeniach jako conversations z kategorią ustawioną na CATEGORY_MISSED_CALL.
  • Udostępniaj użytkownikom awatary wysokiej jakości (104 dp). W przeciwnym razie system użyje inicjałów osoby, co będzie mniej angażujące.
  • Nie cancel a powiadomienia o rozmowie, zanim użytkownik nie zobaczy wiadomości. Przykładem jest 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 ani na nią odpowiedzenia, anulowane powiadomienie i powiązany z nim dymek zostaną usunięte, co spowoduje utratę kontekstu rozmowy.
  • Podaj identyfikator data URI dla metadanych związanych z MIME powiązanych z wiadomościami, co daje możliwość zapewnienia bogatszych wrażeń w powiadomieniach.
  • Aby zwiększyć zaangażowanie w widżety rozmów, użyj interfejsu Android 12 status API.
  • 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 tej samej rozmowie powinny mieć ten sam identyfikator skrótu. Aby publikować skróty i raportować ich użycie, użyj metody pushDynamicShortcut().
    • Aby uniknąć przypadkowego przycięcia awatara skrótu, podaj AdaptiveIconDrawable dla ikony skrótu. Więcej informacji znajdziesz w artykule Udostępnianie obrazów skrótów.
    • Aby pomóc systemowi w promowaniu skrótu, postępuj zgodnie z wytycznymi dotyczącymi uzyskiwania najlepszej pozycji. Twój skrót jest oceniany w różnych interfejsach systemowych, w tym w arkuszu udostępniania Androida, jeśli jest to skrót do udostępniania.
    • Upewnij się, że skróty do rozmów intents otwierają bezpośrednio odpowiednią rozmowę.
    • Użyj bibliotek zgodności, aby wygodnie ustawić skróty jako conversation powiązane.

Testowanie powiadomień o rozmowach i skrótów

Przytrzymanie rozmowy otwiera menu działań związanych z rozmową.
Rysunek 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 postępujesz zgodnie z wytycznymi dotyczącymi obszaru rozmów, rozmowy powinny automatycznie pojawiać się w obszarze rozmów. Aby sprawdzić, czy skrót jest prawidłowo zintegrowany, naciśnij powiadomienie i przytrzymaj je. Jeśli integracja jest prawidłowa, interfejs użytkownika wyświetla działania związane z rozmową. Jeśli powiadomienie nie jest połączone ze skrótem, interfejs użytkownika wyświetla tekst informujący, że aplikacja nie obsługuje funkcji rozmów.

Dodane skróty wyświetlają się po naciśnięciu i przytrzymaniu Menu z aplikacjami. Sprawdź, czy skróty przenoszą Cię do właściwego miejsca w aplikacji.

Dodane skróty do udostępniania są wyświetlane w wierszu udostępniania bezpośredniego w arkuszu udostępniania podczas udostępniania treści, które mogą być odbierane przez 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żetów rozmów opiera się na funkcji osób i rozmów wprowadzonej 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 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 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), aby wymieniać wiadomości. Na potrzeby tej procedury będziemy nazywać konta „użytkownik A” i „użytkownik B”.

Interfejs selektora widżetów umożliwiający dodanie nowego widżetu rozmowy
Rysunek 2. Interfejs użytkownika selektora widżetów umożliwiający dodanie nowego widżetu rozmowy.

Wykonaj następujące czynności:

  1. Na urządzeniu użytkownika A naciśnij i przytrzymaj Menu z aplikacjami. 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 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. Wróć na urządzenie użytkownika A i sprawdź, czy widżet został zaktualizowany, aby odzwierciedlał 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 upewnić się, że ich widżety prawidłowo je odzwierciedlają. Listę wartości stanu znajdziesz w artykule ConversationStatus.