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 ekranach systemu telefonu. Ten priorytet wynika z faktu, że komunikacja i współpraca z innymi osobami to nadal najbardziej ceniona i najważniejsza funkcja dla większości naszych użytkowników we wszystkich grupach demograficznych.

W Androidzie 11 wprowadzono kilka funkcji, które wspierają inicjatywę dotyczącą osób i rozmów.

Pokój rozmów


Pokój rozmów to specjalna strefa powiadomień do prowadzenia rozmów w czasie rzeczywistym.
Ilustracja 1. Pokój rozmów.

Na urządzeniach przenośnych nad panelem powiadomień znajduje się osobna sekcja z tylko rozmowami w czasie rzeczywistym (takimi jak połączenia i wiadomości na czacie, w tym czaty grupowe). Powiadomienia w tym pokoju wyglądają i działają inaczej niż powiadomienia z innych aplikacji na wielu telefonach:

  • Projekt jest inny, z silnym naciskiem na awatara reprezentującego ludzi połączonego z aplikacją, w której toczy się rozmowa.
  • Kliknięcie powiadomienia otwiera rozmowę w aplikacji (lub bąbelku, jeśli rozmowa była wcześniej w bąbelku). Kliknięcie strzałki w górę powoduje rozwinięcie nowych wiadomości w panelu do wyświetlania powiadomień do pełnej długości wraz z pełną listą opcji.
  • Dostępne są działania związane z rozmową (niektóre z nich wymagają długiego naciśnięcia):
    • Oznaczanie rozmowy jako priorytetowej
    • Przekaż tę rozmowę do dymka (wyświetla się 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 rozmów, platforma wyświetla je jako okrągły dymek w schowku powiadomień.
Ilustracja 2. Powiadomienie wyświetlane jako dymek w szufladce powiadomień.

Począwszy od Androida 11, bąble można uruchamiać z powiadomień w sekcji Rozmowy. Dymek może wyświetlać tylko powiadomienia z powiązanym skrótem. Rozmowy wyświetlają się jako dymek automatycznie, jeśli są oznaczone jako ważne lub są wywoływane jako dymek w pasku powiadomień.

Skróty rozmów

Skróty do rozmów są widoczne w menu uruchamiania i obok długoterminowych skrótów do udostępniania w panelu udostępniania.

Wytyczne dotyczące interfejsów API

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

Skróty w Rozmowach

Aby móc korzystać z tej inicjatywy skoncentrowanej na rozmowach, aplikacje muszą udostępniać systemowi długotrwałe 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 w Androidzie 11, ale w przyszłości możemy usunąć tę opcję.

Aby opublikować skrót w rozmowie, 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ć Persondane dotyczące co najmniej 1 osoby, która jest identyfikowana przez innych uczestników rozmowy. Zalecamy też ustawienie parametru LocusIdCompat.

Jeśli rozmowa nie istnieje, aplikacja może usunąć skrót removeLongLivedShortcuts(). Spowoduje to usunięcie przez system wszystkich danych powiązanych z rozmową. Chociaż skróty można usuwać, aplikacje nie powinny usuwać zapisanych w pamięci podręcznej skrótów, chyba że jest to absolutnie konieczne. Skróty są zapisywane w pamięci podręcznej, ponieważ użytkownik w jakimś stopniu z nich korzystał, a usunięcie skrótu spowoduje cofnięcie tych zmian i może zirytować użytkownika.

Powiadomienia w rozmowach

Powiadomienie jest uważane za powiadomienie o rozmowie, jeśli:

  • Powiadomienie używa MessagingStyle.

  • (Tylko jeśli aplikacja jest przeznaczona na Androida 11 lub nowszego) Powiadomienie jest powiązane z obowiązującym długotrwałym dynamicznym lub wygenerowanym w pamięci podręcznej skrótem do udostępniania. Powiadomienie może ustawić to powiązanie, wywołując metodę 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 zastępcze.

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

Używanie LocusIdCompat

Inteligencja na urządzeniu określa rozmowy, którymi użytkownik jest najbardziej zainteresowany. Do najważniejszych sygnałów należą aktualnośćczęstotliwość sesji rozmów w każdej rozmowie. System wie o interakcjach z rozmową z poziomu skrótów w Menu lub powiadomienia, jeśli są odpowiednio otagowane. System nie wie jednak o rozmowach prowadzonych w aplikacji, chyba że te interakcje są też otagowane. Dlatego zdecydowanie zalecamy dołączenie LocusIdCompat do skrótu i otagowanie aktywności lub fragmentu w aplikacji odpowiednim LocusIdCompat. Użyj wartości LocusIdCompat, aby umożliwić systemowi sugestii prawidłowe pozycjonowanie rozmowy oraz wyświetlanie prawidłowego czasu ostatniej interakcji użytkownika (w tym interakcji w aplikacji) z rozmową. Jeśli użyjesz setShortcutInfo(), aby powiązać rozmowę z skrótem, system rozmów automatycznie dołączy odpowiednią LocusIdCompat.

Wymagania dotyczące pokoju rozmów w przypadku aplikacji kierowanych na Androida 10 lub starszego

Jeśli aplikacja nie jest kierowana na Androida 11, jej wiadomości mogą być nadal wyświetlane w pokoju rozmów. Aplikacja musi jednak spełniać określone wymagania. W tej sekcji opisano wymagania dotyczące tych aplikacji oraz zachowanie domyślne, jeśli aplikacja nie spełnia wymagań.

Podstawowym wymogiem udziału w systemie przesyłania wiadomości jest to, że aplikacja musi implementować powiadomienia MessagingStyle, a powiadomienia te muszą zawierać odwołanie do długotrwałego skrótu z powiadomienia opublikowanego w momencie opublikowania powiadomienia. Powiadomienia, które spełniają te wymagania, pojawiają się w pokoju z rozmową w następujący sposób:

  • Powiadomienie jest wyświetlane w stylu konwersacji.
  • Przycisk Bubble jest dostępny, jeśli został zaimplementowany
  • Funkcje specyficzne dla rozmowy są dostępne w ramach konwersacji.

Jeśli powiadomienie nie spełnia tych wymagań, platforma używa opcji zapasowych do formatowania powiadomienia. Jeśli powiadomienie spełnia wymagania w przypadku obu alternatyw, wyświetla się w miejscu rozmowy ze specjalnym formatowaniem. Jeśli powiadomienie nie kwalifikuje się do żadnej opcji zastępczej, nie jest wyświetlane w obszarze rozmowy.

Wartość domyślna: jeśli używany jest styl wiadomości, 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 pokoju z takimi ustawieniami:

  • Powiadomienie jest wyświetlane w stylu konwersacji.
  • Brak przycisku w bąbelku
  • Brak funkcji związanych z poszczególnymi rozmowami.

Wartość domyślna: jeśli nie używasz atrybutu MessagingStyle, ale aplikacja jest rozpoznawaną aplikacją do wysyłania wiadomości

Jeśli powiadomienie nie używa parametru MessagingStyle ale aplikacja jest rozpoznawana przez platformę jako aplikacja do obsługi wiadomości, a parametr category powiadomienia ma ustawioną wartość msg, powiadomienie jest wyświetlane w miejscu konwersacji z takim zachowaniem:

  • Powiadomienie jest wyświetlane w starym stylu sprzed Androida 11
  • Brak przycisku w bąbelku
  • Brak funkcji związanych z poszczególnymi rozmowami.

Wskazówki, użytkowanie i testowanie

W tej sekcji znajdziesz ogólne wskazówki dotyczące używania i testowania funkcji konwersacji.

Kiedy warto używać rozmów?

Powiadomienia o rozmowie i powiązane skróty mają na celu poprawę działania funkcji 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 konwersacjami.

Daliśmy użytkownikom możliwość usunięcia danej rozmowy z sekcji rozmowy, jeśli nie sądzą, że znajduje się ona we właściwym pokoju.

Sprawdzone metody

Aby zwiększyć zaangażowanie i ułatwić użytkownikom interakcję z ludźmi oraz rozmowami na temat Twojej aplikacji, zalecamy stosowanie się do tych sprawdzonych metod.

  • Aby mieć pewność, że nieodebrane połączenia są wyświetlane w priorytetowym okienku czatu i prawidłowo pojawiają się w widżecie konwersji, sformatuj powiadomienia o nieodebranych połączeniach jako conversations z ustawioną kategorią CATEGORY_MISSED_CALL.
  • Użytkownikom należy udostępnić wysokiej jakości awatary (104 dp); w przeciwnym razie system będzie używać ich inicjałów, co jest mniej angażujące.
  • Nie wysyłaj cancel powiadomienia o rozmowie, dopóki użytkownik nie zobaczy wiadomości. Jednym z takich przykładów jest anulowanie powiadomienia podczas otwierania aplikacji w widoku, w którym użytkownik nie może zobaczyć ani obsłużyć wiadomości. Jeśli użytkownik nie ma możliwości przeczytania lub odpowiedzi na wiadomość, anulowane powiadomienie i powiązana z nim bańka zostaną usunięte, co spowoduje utratę kontekstu rozmowy.
  • Podaj identyfikator URI dataz metadanymi związanymi z MIME powiązanymi z wiadomościami, co daje Ci możliwość zapewnienia bogatszych powiadomień.
  • Użyj interfejsu API Android 12 status, aby uczynić widżety konwersacji bardziej angażujące.
  • Stosuj te sprawdzone metody dotyczące skrótów w rozmowach.
    • publikować 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 dla ikony skrótu. Więcej informacji znajdziesz w artykule Przygotowanie obrazów skrótów.
    • Aby pomóc systemowi promować skrót, postępuj zgodnie z wytycznymi dotyczącymi uzyskiwania najlepszego rankingu. Skrót jest klasyfikowany na różnych platformach systemowych, w tym na stronie udostępniania w Androidzie, jeśli jest to skrót do udostępniania.
    • Upewnij się, że skróty do rozmów intentsotwierają się bezpośrednio w odpowiedniej rozmowie.
    • Użyj bibliotek kompatybilności, aby wygodnie ustawić skróty jako powiązane z kartą conversation.

Testowanie powiadomień i skrótów w rozmowach

Długie naciśnięcie rozmowy powoduje otwarcie menu czynności związanych z tą rozmową.
Rysunek 3. Aby sprawdzić, czy powiadomienie o rozmowie jest prawidłowo skonfigurowane, naciśnij je długo i sprawdź, czy pojawia się menu rozmowy.

Jeśli postępujesz zgodnie z wytycznymi dotyczącymi 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, interfejs będzie zawierać działania związane z rozmową. Jeśli powiadomienie nie jest połączone z skrótem, interfejs 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 prowadzą do odpowiedniego miejsca w aplikacji.

Dodane skróty do udostępniania są wyświetlane w wierszu bezpośredniego udostępniania w arkuszu udostępniania, gdy udostępniasz treści, które skrót do udostępniania może otrzymać.

Widżety rozmów

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

W Androidzie 12 widżet rozmów opiera się na funkcji dotyczącej osób i rozmów wprowadzonej w Androidzie 11. Umożliwia on aplikacjom wyświetlanie stanu rozmów w widżetach rozmów.

Widżety rozmów zachęcają użytkowników do interakcji, ponieważ umożliwiają łatwe otwieranie czatów na ekranie głównym. Te widżety to ulepszone skróty, które umożliwiają użytkownikom szybkie wracanie do rozmów, a także wyświetlanie fragmentów stanu rozmowy i innych istotnych informacji.

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

Aby sprawdzić, czy Twoja aplikacja obsługuje widżety rozmów, musisz mieć co najmniej 2 urządzenia z Androidem 12 i 2 konta użytkowników (po 1 na każdym urządzeniu), aby wymieniać się wiadomościami. Na potrzeby tej procedury konta będą nazywać się „Użytkownik A” i „Użytkownik B”.

Interfejs selektora widżetów do dodawania widżetu nowej rozmowy
Rysunek 2. Interfejs wyboru widżetu do dodawania nowych widżetów rozmów.

Wykonaj te czynności:

  1. Na urządzeniu użytkownika A przytrzymaj uruchamiacz. W selektorze widżetów kliknij nowy widżet rozmowy, jak pokazano na rysunku 2.
  2. Przeciągnij widżet na ekran główny. Użytkownik A powinien mieć możliwość wybrania listy aktywnych lub ostatnich rozmów z aplikacji.
  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, aby odzwierciedlać powiadomienie o wiadomości od użytkownika B.
  5. Opcjonalnie: zarówno użytkownik A, jak i użytkownik B mogą ustawić rozmowę na różne wartości stanu, aby mieć pewność, że ich widżety będą je odpowiednio odzwierciedlać. Listę wartości stanu znajdziesz w kolumnie ConversationStatus.