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
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
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ć Person
dane 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()
lubsetShortcutInfo()
. 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ść i 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
data
z 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
.
- 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
Testowanie powiadomień i skrótów w rozmowach
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
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”.
Wykonaj te czynności:
- 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.
- Przeciągnij widżet na ekran główny. Użytkownik A powinien mieć możliwość wybrania listy aktywnych lub ostatnich rozmów z aplikacji.
- Teraz na urządzeniu użytkownika B wyślij wiadomość testową do użytkownika A.
- Na urządzeniu użytkownika A sprawdź, czy widżet został zaktualizowany, aby odzwierciedlać powiadomienie o wiadomości od użytkownika B.
- 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.