Osoby i rozmowy

Inicjatywa osób i rozmów to wieloletnia inicjatywa Androida, która ma na celu ułatwienie komunikacji między ludźmi i na platformach telefonu. Priorytet ten wynika z faktu, że komunikacja i interakcje z innymi osobami w dalszym ciągu są najbardziej wartościowym i najważniejszym aspektem funkcjonalności dla większości naszych użytkowników ze wszystkich grup demograficznych.

W Androidzie 11 wprowadziliśmy szereg funkcji wspierających inicjatywę Ludzi i rozmów.

Pokój rozmowy


Pokój rozmów to specjalny obszar powiadomień do rozmów między ludźmi w czasie rzeczywistym.
Rysunek 1. Przestrzeń rozmów.

Na urządzeniach mobilnych u góry obszaru powiadomień znajduje się osobna sekcja, w której znajdują się tylko rozmowy z osobami w czasie rzeczywistym (np. połączenia i czaty, w tym czaty grupowe). Na wielu telefonach powiadomienia w tym obszarze wyglądają i działają inaczej niż powiadomienia niezwiązane z wątkami:

  • Różnica w układzie aplikacji: awatar reprezentujący osoby połączone z aplikacją prowadzącą rozmowę.
  • Kliknięcie powiadomienia powoduje otwarcie rozmowy w aplikacji (lub dymka, jeśli wątek był wcześniej wyświetlany jako dymek), a kliknięcie kursora powoduje rozwinięcie nowych wiadomości w obszarze powiadomień do pełnej długości z pełną listą opcji.
  • Dostępne są działania związane z rozmową (niektóre po przytrzymaniu):
    • Oznacz tę rozmowę jako priorytetową
    • Promuj tę rozmowę jako dymki (widoczne 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 wyświetli je jako dymek z panelu powiadomień.
Rys. 2: Wyświetlanie powiadomień w postaci dymku z panelu powiadomień.

Począwszy od Androida 11 Dymki można uruchamiać z poziomu powiadomień w sekcji Rozmowy. Jako dymki wyświetlają się tylko powiadomienia z powiązanym skrótem. Rozmowy automatycznie wyświetlają się w dymku, gdy zostały oznaczone jako ważne lub wyświetlają się jako dymki w obszarze powiadomień.

Skróty rozmów

Skróty do rozmów są wyświetlane w Menu z aplikacjami oraz obok długotrwałych skrótów do udostępniania w arkuszu udostępniania.

Wytyczne dotyczące interfejsu API

W tej sekcji opisujemy interfejsy API, z których możesz korzystać w aplikacji, aby korzystać z udostępnianego przez system miejsca, w którym wyświetlają się ludzie i rozmowy.

Skróty w rozmowach

Aby uczestniczyć w tej inicjatywie ukierunkowanej na rozmowy, aplikacje muszą zapewnić systemowi długotrwałe skróty. Zdecydowanie zalecamy korzystanie z trwałych skrótów 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 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 jednej osoby umożliwiające identyfikację innych uczestników rozmowy. Zalecamy też skonfigurowanie parametru LocusIdCompat.

Jeśli wątek już nie istnieje, aplikacja może usunąć skrót z removeLongLivedShortcuts(). Spowoduje to usunięcie przez system wszystkich danych powiązanych z tą rozmową. Chociaż skróty można usuwać, aplikacje nie powinny usuwać skrótów z pamięci podręcznej, chyba że są absolutnie konieczne. Skrót jest prawdopodobnie przechowywany w pamięci podręcznej, ponieważ użytkownik korzystał z niego, aby zmienić sposób korzystania z urządzenia, a usunięcie skrótu spowoduje cofnięcie tych zmian, co doprowadzi do frustracji użytkownika.

Powiadomienia o rozmowach

Powiadomienie jest uznawane za powiadomienie w ramach rozmowy, jeśli są spełnione 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ługotrwałym skrótem do udostępniania w pamięci podręcznej lub dynamicznego udostępniania. Powiadomienie może ustawić to powiązanie, wywołując setShortcutId() lub setShortcutInfo(). Jeśli aplikacja jest kierowana na Androida 10 lub starszego, powiadomienie nie musi być powiązane ze skrótem, co zostało omówione w sekcji Opcje kreacji zastępczych.

  • W chwili publikowania użytkownik nie przesunął rozmowy w dół w sekcji rozmowy w ustawieniach kanału powiadomień.

Użyj LocusIdCompat

Inteligentne funkcje na urządzeniu określają rozmowy, które najprawdopodobniej zainteresują użytkownika. Do najważniejszych sygnałów należą czas od poprzedniej wizyty i częstotliwość 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 prawidłowo oznaczone. System nie wie jednak o rozmowach, które odbyły się w całości w aplikacji, chyba że te interakcje zostaną też otagowane. Dlatego zdecydowanie zalecamy dołączenie do skrótu elementu LocusIdCompat i dodanie adnotacji do działania lub fragmentu w aplikacji przy użyciu powiązanego elementu LocusIdCompat. Użyj funkcji LocusIdCompat, aby system podpowiedzi mógł prawidłowo ustalać ranking rozmowy i umożliwić systemowi wyświetlanie poprawnego czasu ostatniej interakcji użytkownika (w tym również w aplikacji) w ramach rozmowy. Jeśli używasz setShortcutInfo() do powiązania wątku ze skrótem, system rozmów automatycznie dołączy odpowiedni element LocusIdCompat.

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

Jeśli aplikacja nie jest kierowana na Androida 11, wiadomości z niej można wyświetlać w pokoju rozmów. Aplikacja wciąż musi jednak spełniać pewne wymagania. W tej sekcji opisujemy wymagania dotyczące tych aplikacji oraz sposób działania kreacji zastępczych, gdy aplikacja ich nie spełnia.

Podstawowym wymogiem korzystania z wiadomości jest, aby aplikacja musi zaimplementować powiadomienia MessagingStyle, które muszą odnosić się do długotrwałego skrótu w powiadomieniu publikowanym w chwili jego opublikowania. Powiadomienia spełniające te wymagania będą pojawiać się w pokoju rozmowy z takim zachowaniem:

  • Powiadomienie jest wyświetlane w stylu rozmowy
  • wyświetlany jest przycisk dymka (jeśli został zaimplementowany);
  • Funkcje dopasowane do rozmowy są dostępne w tekście

Jeśli powiadomienie nie spełnia tych wymagań, platforma używa opcji zastępczych, aby je sformatować. Jeśli powiadomienie spełnia wymagania dowolnej z tych przyczyn, wyświetli się w pokoju rozmowy ze specjalnym formatowaniem. Jeśli powiadomienie nie kwalifikuje się do żadnej z opcji zastępczych, nie wyświetli się w pokoju rozmowy.

Zastępcza: jeśli używana jest funkcja MessagingStyle, ale nie podano skrótu

Jeśli aplikacja jest kierowana na Androida 10 lub starszego, a powiadomienie korzysta z MessagingStyle, ale nie powiąże wiadomości ze skrótem, powiadomienie wyświetli się w pokoju rozmowy w taki sposób:

  • Powiadomienie jest wyświetlane w stylu rozmowy
  • Brak przycisku dymku.
  • W tekście nie są dostępne żadne funkcje związane z konkretnymi rozmowami.

Zastępcza: jeśli nie jest używany MessagingStyle, ale aplikacja jest rozpoznawaną aplikacją do obsługi wiadomości

Jeśli powiadomienie nie używa MessagingStyle, ale platforma zostanie rozpoznana przez platformę jako komunikator, a parametr category powiadomienia jest ustawiony na msg, powiadomienie wyświetli się w pokoju rozmowy w taki sposób:

  • Powiadomienia są wyświetlane w starym stylu (nie starszym niż Android 11)
  • Brak przycisku dymku.
  • W tekście nie są dostępne żadne funkcje związane z konkretnymi rozmowami.

Wskazówki, użytkowanie i testowanie

Ta sekcja zawiera ogólne wskazówki dotyczące używania i testowania funkcji rozmów.

Kiedy warto używać rozmów?

Powiadomienia o rozmowach i powiązane skróty mają na celu zwiększanie wygody użytkowników rozmów w czasie rzeczywistym. Na przykład SMS-y, czaty tekstowe i połączenia telefoniczne to rozmowy w czasie rzeczywistym, podczas których użytkownicy chcą się komunikować szybko. Użytkownicy nie mają takich oczekiwań w przypadku e-maili ani działań niezwiązanych z rozmowami.

Umożliwiamy użytkownikom usuwanie danej rozmowy z sekcji rozmów, jeśli czują, że nie trafili w odpowiednie miejsce.

Sprawdzone metody

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

  • Aby nieodebrane połączenia były widoczne w obszarze rozmowy z priorytetami i prawidłowo wyświetlały się w widżecie konwersji, sformatuj powiadomienia o nieodebranych połączeniach jako conversations z kategorią ustawioną na CATEGORY_MISSED_CALL.
  • Zapewnij użytkownikom wysokiej jakości awatary (104 dp). W przeciwnym razie system użyje inicjałów danej osoby, co zmniejszy jej atrakcyjność.
  • Nie cancel wysyłaj powiadomienia o rozmowie, dopóki 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 jej zobaczyć ani odnieść się do wiadomości. Jeśli użytkownik nie będzie miał możliwości przeczytania lub odpowiadania na wiadomość, anulowane powiadomienie i powiązany z nim dymek zostaną usunięte, co skutkuje utratą kontekstu rozmowy.
  • Podaj identyfikator URI data dla metadanych związanych z MIME wiadomości powiązanych z wiadomościami, dzięki czemu możesz zwiększyć możliwości otrzymywania 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 rozmowy.
    • Opublikuj skróty do przychodzących i wychodzących rozmów w aplikacji, które nie wyświetlają 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łaszać użycie.
    • Aby uniknąć przypadkowego obcięcia awatara skrótu, dodaj AdaptiveIconDrawable dla ikony skrótu. Więcej informacji znajdziesz w artykule Przesyłanie zdjęć skrótów.
    • Aby ułatwić systemowi awansowanie skrótu, postępuj zgodnie ze wskazówkami dotyczącymi uzyskiwania najlepszej pozycji w rankingu. Skrót jest klasyfikowany na różnych platformach 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 uruchamiają się bezpośrednio w odpowiednim wątku.
    • Za pomocą plików compat libs możesz w wygodny sposób ustawić skróty jako powiązane z conversation.

Testowanie powiadomień o rozmowach i skrótów

Naciśnięcie i przytrzymanie wątku powoduje otwarcie menu z działaniami związanymi z rozmową.
Rysunek 3. Aby sprawdzić, czy powiadomienie o rozmowie jest prawidłowo skonfigurowane, przytrzymaj je i sprawdź, czy wyświetla się menu rozmowy.

Jeśli postępujesz zgodnie ze wskazówkami dotyczącymi pokoju rozmowy, rozmowy powinny automatycznie pojawiać się w pokoju rozmów. Możesz sprawdzić, czy skrót jest poprawnie zintegrowany, przytrzymując powiadomienie. Jeśli integracja zostanie przeprowadzona prawidłowo, w interfejsie pojawią się działania związane z konwersacją. Jeśli powiadomienie nie jest powiązane ze skrótem, w interfejsie pojawi się tekst z informacją, że aplikacja nie obsługuje funkcji rozmowy.

Dodane skróty pojawiają się po przytrzymaniu w Menu z aplikacjami. Sprawdź, czy skróty zaprowadzą Cię we właściwe miejsce w aplikacji.

Dodane skróty do udostępniania są wyświetlane w wierszu bezpośredniego udostępniania arkusza udostępniania podczas udostępniania treści, którą może odebrać skrót do udostępniania.

widżety rozmów,

Wątki wyświetlane w widżetach rozmów
Rysunek 1. Wątki wyświetlane w widżetach rozmów.

W Androidzie 12 funkcja widżetu rozmów opiera się na funkcji osób i rozmów wprowadzonej w Androidzie 11, umożliwiając aplikacjom wyświetlanie stanu rozmów w widżetach rozmów.

Widżety rozmów ułatwiają interakcję użytkowników, umożliwiając im łatwe otwieranie czatów na ekranie głównym. Te widżety to ulepszone skróty, które pozwalają użytkownikom sprawnie wracać do rozmów, pokazując przy tym fragmenty ich 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żytkownika (po jednym na każdym) do wymiany wiadomości. Na potrzeby tej procedury nadajemy nazwy użytkownikom „użytkownik A” i „użytkownik B”.

Interfejs selektora widżetu z opcją dodawania nowego widżetu rozmowy
Rys. 2. Interfejs selektora widżetów przedstawiający dodawanie nowego widżetu wątku.

Wykonaj te czynności:

  1. Na urządzeniu użytkownika A przytrzymaj program uruchamiający. W selektorze widżetów kliknij nowy widżet rozmowy, tak jak na ilustracji 2.
  2. Przeciągnij widżet na ekran główny. Lista aktywnych lub ostatnich rozmów z aplikacji użytkownika A powinna być dostępna do wyboru.
  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 tak, aby odzwierciedlał powiadomienie o wiadomości od użytkownika B.
  5. Opcjonalnie: poproś użytkownika A i użytkownika B o ustawienie różnych wartości stanu rozmowy, aby widżety odpowiednio je odzwierciedlały. Listę wartości stanu znajdziesz w sekcji ConversationStatus.