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.

Wątek


Pokój rozmów to obszar powiadomień przeznaczony do rozmów w czasie rzeczywistym między ludźmi.
Ilustracja 1. Pokój rozmów.

Na urządzeniach mobilnych u góry obszaru powiadomień znajduje się osobna sekcja, w której znajdują się tylko rozmowy z różnymi osobami w czasie rzeczywistym (np. połączenia i czaty, 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 powoduje otwarcie rozmowy w aplikacji (lub dymka, jeśli wątek był wcześniej wyświetlany jako dymek), a kliknięcie kursora powoduje wyświetlenie pełnej listy nowych wiadomości w obszarze powiadomień.
  • 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 uruchomieniach oraz obok długoterminowych skrótów do udostępniania w panelu udostępniania.

Wytyczne dotyczące interfejsów 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 wziąć udział w tej inicjatywie skoncentrowanej na rozmowach, aplikacje muszą udostępnić 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 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ć 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 uznawane za powiadomienie w ramach rozmowy, jeśli są spełnione te warunki:

  • 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 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.

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

Używanie LocusIdCompat

Inteligentne funkcje na urządzeniu określają rozmowy, które najprawdopodobniej zainteresują użytkownika. 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, które odbywają się 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 i wyświetlanie prawidłowego czasu ostatniej interakcji użytkownika (w tym interakcji w aplikacji) z rozmową. 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 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 spełniające te wymagania będą pojawiać się w pokoju rozmowy z takim zachowaniem:

  • Powiadomienie jest wyświetlane w stylu konwersacji.
  • Przycisk Bubble jest dostępny, jeśli został zaimplementowany
  • Funkcje związane z rozmową 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 dowolnej z tych przyczyn, wyświetli się w pokoju 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
  • W tekście nie są dostępne żadne funkcje związane z konkretnymi 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:

  • Powiadomienia są wyświetlane w starym stylu (nie starszym niż Android 11)
  • Brak przycisku w bąbelku
  • W tekście nie są dostępne żadne funkcje związane z konkretnymi 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 mają takich oczekiwań w przypadku e-maili ani działań niezwiązanych z rozmowami.

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 aplikacji, zalecamy stosowanie tych sprawdzonych metod.

  • Aby mieć pewność, że nieodebrane połączenia będą wyświetlane w priorytetowym okienku czatu i prawidłowo w widżecie konwersji, sformatuj powiadomienia o nieodebranych połączeniach jako conversations z 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 cancel wysyłaj powiadomienia o rozmowie, dopóki 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ć ani obsłużyć 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 dataz meta danymi dotyczącymi formatu 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.
  • Zastosuj te sprawdzone metody dotyczące skrótów rozmowy.
    • 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 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ń 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 został 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 powiązane z skrótem, w interfejsie wyświetli się komunikat informujący, że aplikacja nie obsługuje funkcji czatu.

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 lub innych istotnych informacji.

Sprawdź, czy Twoja 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 urządzenia 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, 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.