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
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
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()
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.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ą naCATEGORY_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
.
- 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
Testowanie powiadomień o rozmowach i skrótów
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 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”.
Wykonaj te czynności:
- 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.
- 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.
- 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 tak, aby odzwierciedlał powiadomienie o wiadomości od użytkownika B.
- 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.