Osoby i rozmowy

Ludzie i rozmowy to wieloletnia inicjatywa na Androida, która ma na celu ułatwienie osobom i rozmów w środowisku systemowym telefonu. Priorytet ten opiera się na tym, że komunikacja i interakcja z innymi osobami wciąż jest najbardziej wartościowym i ważnym obszarem funkcjonalnym dla większości naszych użytkowników we wszystkich grupach demograficznych.

W Androidzie 11 wprowadzono wiele funkcji wspierających inicjatywę związaną z ludźmi i rozmowami.

Pokój rozmowy


Pokój rozmowy to obszar powiadomień, w którym użytkownicy mogą prowadzić rozmowy w czasie rzeczywistym.
Rysunek 1. Pokój rozmów.

Na urządzeniach mobilnych nad obszarem powiadomień znajduje się oddzielna sekcja, która zawiera tylko rozmowy z innymi osobami w czasie rzeczywistym (np. połączenia i wiadomości czatu, w tym czaty grupowe). Na wielu telefonach powiadomienia w tym pokoju wyglądają i działają inaczej niż powiadomienia niezwiązane z rozmowami:

  • Zupełnie inna konstrukcja, zwłaszcza awatar, który przedstawia ludzi połączonych z aplikacją prowadzącą rozmowę.
  • Kliknięcie powiadomienia otwiera rozmowę w aplikacji (lub dymek, jeśli rozmowa była wcześniej wyświetlana w dymkach). Kliknięcie kursora powoduje rozwinięcie nowej wiadomości w obszarze do pełnej długości i pełnej listy opcji.
  • Dostępne są czynności związane z rozmową (niektóre po naciśnięciu i przytrzymaniu przycisku):
    • Oznacz tę rozmowę jako priorytetową
    • Oznacz tę rozmowę jako 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 panelu powiadomień.
Rysunek 2. Uruchamianie powiadomienia w dymku w panelu powiadomień.

Od Androida 11 dymki można uruchamiać z poziomu powiadomień w sekcji rozmów. Dymki mogą wyświetlać się tylko powiadomienia z powiązanym skrótem. Rozmowy oznaczone jako ważne lub wyświetlane jako dymki w obszarze powiadomień są wyświetlane automatycznie.

Skróty rozmów

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

Wytyczne dotyczące interfejsu API

W tej sekcji opisujemy interfejsy API, które dodają obsługę obszaru udostępnionego przez system, w którym wyświetlają się ludzie i rozmowy.

Skróty rozmów

Aby wziąć udział w tej inicjatywie ukierunkowanej na konwersację, aplikacje muszą udostępnić systemowi długotrwałe skróty. Zdecydowanie zalecamy korzystanie z długotrwałych skrótów do udostępniania. W razie potrzeby możesz używać skrótów dynamicznych w Androidzie 11, ale w przyszłości możemy usunąć tę opcję.

Aby opublikować skrót rozmowy, wywołaj metody ShortcutManagerCompat setDynamicShortcuts(), addDynamicShortcuts() lub pushDynamicShortcut() (które automatycznie zarządzają limitem skrótów na poziomie dewelopera). Ten skrót musi być długotrwały i zawierać dane Person dotyczące co najmniej 1 osoby identyfikujące innych uczestników rozmowy. Zalecamy też ustawienie LocusIdCompat.

Jeśli rozmowa już nie istnieje, aplikacja może usunąć skrót za pomocą removeLongLivedShortcuts(). Spowoduje to usunięcie wszystkich danych powiązanych z rozmową. Chociaż skróty można usunąć, aplikacje nie powinny usuwać skrótów z pamięci podręcznej, chyba że jest to absolutnie konieczne. Skrót jest prawdopodobnie zapisywany w pamięci podręcznej, ponieważ użytkownik wszedł z nim w interakcję, aby zmienić działanie usługi. Usunięcie skrótu spowoduje cofnięcie zmian, co z kolei frustruje użytkownika.

Powiadomienia o rozmowach

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

  • Powiadomienie to MessagingStyle.

  • (Tylko wtedy, gdy aplikacja jest kierowana na Androida 11 lub nowszego) powiadomienie jest powiązane z prawidłowym długotrwałym skrótem do udostępniania dynamicznym lub pamięci podręcznej. W powiadomieniu można określić 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 omówiono w sekcji opcji zastępczych.

  • użytkownik nie przesunął rozmowy w dół z sekcji rozmowy w ustawieniach kanału powiadomień w momencie publikacji posta.

Korzystanie z LocusIdCompat

Analizy na urządzeniu określają rozmowy, które z największym prawdopodobieństwem mogą zainteresować użytkownika. Do najważniejszych sygnałów należą czas od poprzedniej wizyty i częstotliwość sesji rozmowy w każdej rozmowie. System wie o interakcjach z rozmową za pomocą skrótów w Menu z aplikacjami lub w powiadomieniu, jeśli zostaną prawidłowo oznaczone. System nie wie jednak o rozmowach, które zostały w całości zrealizowane w aplikacji, chyba że te interakcje też zostały otagowane. Dlatego zdecydowanie zalecamy dodanie do skrótu elementu LocusIdCompat i oznaczenie działania lub fragmentu w aplikacji powiązanym z nim LocusIdCompat. Użyj funkcji LocusIdCompat, aby umożliwić systemowi sugestii prawidłowość pozycji rozmowy w rankingu oraz wyświetlanie poprawnego czasu ostatniej interakcji użytkownika z nią (w tym interakcji w aplikacji). Jeśli za pomocą skrótu setShortcutInfo() powiążesz rozmowę ze skrótem, system rozmów automatycznie dołączy odpowiednie LocusIdCompat.

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

Jeśli aplikacja nie jest kierowana na Androida 11, jej wiadomości mogą się nadal pojawiać w pokoju rozmów. Nadal jednak musi spełniać określone wymagania. W tej sekcji opisano wymagania dotyczące tych aplikacji oraz informacje o działaniu zastępczego, jeśli aplikacja ich nie będzie spełniać.

Podstawowym wymogiem uczestnictwa w pokoju do przesyłania wiadomości jest implementacja powiadomień MessagingStyle, a powiadomienia muszą się odwoływać do długotrwałego skrótu z powiadomienia opublikowanego w momencie jego opublikowania. Powiadomienia spełniające te wymagania są wyświetlane w pokoju rozmowy w następujący sposób:

  • Powiadomienie jest wyświetlane w stylu rozmowy.
  • Dostępny jest przycisk Dymka, jeśli został zaimplementowany.
  • Funkcje dotyczące konkretnej rozmowy są dostępne w tekście.

Jeśli powiadomienie nie spełnia tych wymagań, platforma korzysta z opcji zastępczych, aby sformatować powiadomienie. Jeśli powiadomienie spełnia wymagania jednego z tych formatów wartości zastępczej, jest ono wyświetlane w pokoju rozmowy ze specjalnym formatowaniem. Jeśli powiadomienie nie kwalifikuje się do żadnej z opcji zastępczych, nie wyświetla się w pokoju rozmowy.

Wartość zastępcza: jeśli używany jest element 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 pokoju rozmowy w taki sposób:

  • Powiadomienie jest wyświetlane w stylu rozmowy.
  • Nie ma przycisku.
  • W tekście nie są oferowane żadne funkcje związane z rozmowami.

Wartość zastępcza: jeśli aplikacja MessagingStyle nie jest używana, ale została rozpoznana jako komunikator

Jeśli powiadomienie nie używa funkcji MessagingStyle, ale aplikacja została rozpoznana przez platformę jako aplikacja do obsługi wiadomości, a parametr powiadomienia category ma wartość msg, powiadomienie będzie wyświetlane w pokoju rozmowy z takim działaniem:

  • Powiadomienie jest wyświetlane w starym stylu systemu operacyjnego sprzed Androida 11
  • Nie ma przycisku.
  • W tekście nie są oferowane żadne funkcje związane z rozmowami.

Wskazówki, użytkowanie i testowanie

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

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

Powiadomienia o rozmowach i powiązane z nimi skróty mają zwiększyć wygodę użytkowników 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 muszą tego 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 znajduje się w odpowiednim miejscu.

Sprawdzone metody

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

  • Aby nieodebrane połączenia pojawiały się w obszarze rozmów z priorytetami i prawidłowo w widżecie konwersji, sformatuj powiadomienia o nieodebranych połączeniach jako conversations i ustaw kategorię CATEGORY_MISSED_CALL.
  • Dostarcz użytkownikom wysokiej jakości awatary (104 dp). W przeciwnym razie system użyje inicjałów danej osoby, co zmniejszy ich atrakcyjność.
  • Nie cancel wyświetlaj powiadomienia o rozmowie, zanim użytkownik nie zobaczy wiadomości. Przykładem może być anulowanie powiadomienia po otwarciu aplikacji w widoku, w którym użytkownik nie może zobaczyć wiadomości ani zająć się nią. Jeśli użytkownik nie może odczytać wiadomości lub zająć się nią, anulowane powiadomienie i powiązany z nim dymek zostają usunięte, co skutkuje utratą kontekstu rozmowy.
  • Dodaj identyfikator URI data dla metadanych związanych z MIME powiązanych z wiadomościami. Zwiększa to wygodę użytkowników, którzy mogą otrzymywać powiadomienia.
  • Wykorzystaj interfejs API Android 12 status, aby zwiększyć atrakcyjność widżetów rozmów.
  • Zastosuj poniższe sprawdzone metody dotyczące skrótów rozmów.
    • Publikuj skróty do przychodzących i wychodzących rozmów w aplikacji, które nie generują powiadomień push. Wiadomości przychodzące i wychodzące z tego samego wątku powinny mieć ten sam identyfikator skrótu. Aby opublikować skróty i raportować użycie, użyj narzędzia pushDynamicShortcut().
    • Aby uniknąć przypadkowego przycięcia awatara skrótu, dodaj AdaptiveIconDrawable dla ikony skrótu. Więcej informacji znajdziesz w artykule Przesyłanie zdjęć do skrótów.
    • Aby ułatwić systemowi promowanie skrótu, postępuj zgodnie ze wskazówkami dotyczącymi uzyskiwania najwyższej pozycji w rankingu. Pozycja skrótu jest ustalana 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 rozmowy intents uruchamiają się bezpośrednio w odpowiedniej rozmowie.
    • Za pomocą bibliotek compat możesz wygodnie ustawić skróty jako powiązane z conversation.

Testowanie skrótów i powiadomień o rozmowach

Naciśnięcie i przytrzymanie wątku otwiera menu działań związanych z wątkiem.
Rysunek 3. Aby sprawdzić, czy powiadomienie rozmowy jest prawidłowo skonfigurowane, przytrzymaj je i sprawdź, czy pojawi się menu rozmowy.

Jeśli przestrzegasz wytycznych dotyczących pokoju rozmowy, rozmowy powinny automatycznie pojawiać się w pokoju rozmowy. Aby sprawdzić, czy skrót jest poprawnie zintegrowany, naciśnij i przytrzymaj powiadomienie. Jeśli integracja przebiega 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 pojawi się informacja, że aplikacja nie obsługuje funkcji rozmów.

Dodano skróty po naciśnięciu i przytrzymaniu menu z aplikacjami. Pamiętaj, aby sprawdzić, czy skróty prowadzą do właściwego miejsca w aplikacji.

Dodane skróty udostępniania są widoczne w wierszu udostępniania bezpośredniego arkusza udostępniania podczas udostępniania treści, które może otrzymać skrót do udostępniania.

widżety rozmów,

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

W Androidzie 12 funkcja widżetu rozmowy bazuje 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 pozwalają użytkownikom sprawnie wracać do rozmów, pokazując fragmenty ich stanu rozmowy lub inne istotne informacje.

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 (oba z Androidem 12) i 2 konta użytkownika (po jednym na każdym urządzeniu), na których będziesz przesyłać wiadomości. Na potrzeby tej procedury konta będą miały nazwy „użytkownik A” i „użytkownik B”.

Interfejs selektora widżetu umożliwiającego dodanie nowego widżetu rozmowy
Rysunek 2.: Interfejs selektora widżetów dodawania nowego widżetu rozmowy.

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. 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. 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 mieć pewność, że ich widżety prawidłowo je odzwierciedlają. Listę wartości stanu znajdziesz w sekcji ConversationStatus.