Inicjatywa „Osoby i rozmowy” to wieloletni projekt na Androidzie, który ma na celu zwiększenie znaczenia osób i rozmów w interfejsach systemowych telefonu. Priorytet ten wynika z faktu, że komunikacja i interakcja z innymi osobami jest nadal najbardziej cenionym i najważniejszym obszarem funkcjonalnym dla większości naszych użytkowników we wszystkich grupach demograficznych.
W Androidzie 11 wprowadziliśmy kilka funkcji, które wspierają inicjatywę „Osoby i rozmowy”.
Obszar rozmów
Na urządzeniach przenośnych u góry panelu powiadomień znajduje się osobna sekcja zawierająca tylko rozmowy w czasie rzeczywistym z innymi osobami (np. połączenia i wiadomości na czacie, w tym czaty grupowe). Powiadomienia w tym obszarze wyglądają i działają inaczej niż powiadomienia niezwiązane z rozmowami na wielu telefonach:
- Mają inny wygląd, z silnym naciskiem na awatar reprezentujący osoby w połączeniu z aplikacją, w której prowadzona jest rozmowa.
- Kliknięcie powiadomienia otwiera rozmowę w aplikacji (lub dymku, jeśli rozmowa była wcześniej wyświetlana w dymku), a kliknięcie kursora rozwija nowe wiadomości w panelu do pełnej długości z pełną listą opcji.
- Dostępne są działania dotyczące rozmowy (niektóre po długim naciśnięciu):
- Oznacz tę rozmowę jako priorytetową.
- Wyświetl tę rozmowę w dymku (tylko jeśli aplikacja obsługuje dymki).
- Wycisz powiadomienia o tej rozmowie.
- Ustaw niestandardowe dźwięki lub wibracje dla tej rozmowy.
Rozmowy w dymkach
Od Androida 11, Dymki można uruchamiać z powiadomień w sekcji Rozmowy. Tylko powiadomienia powiązane ze skrótem mogą być wyświetlane w dymku. Rozmowy są automatycznie wyświetlane w dymku, jeśli są oznaczone jako ważne lub jeśli w panelu powiadomień zostanie uruchomiony dymek.
Skróty do rozmów
Skróty do rozmów pojawiają się w Menu z aplikacjami oraz obok długoterminowych, skrótów do udostępniania w arkuszu udostępniania.
Wytyczne dotyczące interfejsu API
W tej sekcji opisujemy interfejsy API, które umożliwiają dodanie w aplikacji obsługi obszaru dostarczanego przez system, w którym wyświetlane są osoby i rozmowy.
Skróty do rozmów
Aby wziąć udział w tej inicjatywie skupionej na rozmowach, aplikacje muszą udostępniać systemowi długoterminowe skróty. Zdecydowanie zalecamy używanie długoterminowych skrótów do 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
ShortcutManagerCompat metody
setDynamicShortcuts(),
addDynamicShortcuts(),
lub pushDynamicShortcut()
(która automatycznie zarządza limitem skrótów dla dewelopera). Ten skrót musi być
długoterminowy
i mieć dołączone dane Person
dotyczące co najmniej 1 osoby, które identyfikują pozostałych uczestników
rozmowy. Zalecamy też ustawienie LocusIdCompat.
Jeśli rozmowa już nie istnieje, aplikacja może usunąć skrót za pomocą metody
removeLongLivedShortcuts();
spowoduje to usunięcie przez system wszystkich danych powiązanych z rozmową.
Chociaż skróty można usuwać, aplikacje nie powinny usuwać skrótów zapisanych w pamięci podręcznej
, chyba że jest to absolutnie konieczne. Skrót jest prawdopodobnie zapisany w pamięci podręcznej, ponieważ użytkownik
wszedł z nim w interakcję, aby zmienić swoje wrażenia, a usunięcie skrótu spowoduje
cofnięcie tych zmian, co może być frustrujące dla użytkownika.
Powiadomienia o rozmowach
Powiadomienie jest uznawane za powiadomienie o rozmowie, jeśli spełnione są 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ługoterminowym skrótem do udostępniania (dynamicznym lub zapisanym w pamięci podręcznej). Powiadomienie może ustawić to powiązanie, wywołując metodę
setShortcutId()lubsetShortcutInfo(). Jeśli aplikacja jest kierowana na Androida 10 lub starszego, powiadomienie nie musi być powiązane ze skrótem, jak opisano w sekcji Opcje awaryjne.W momencie publikowania powiadomienia użytkownik nie obniżył rangi rozmowy w sekcji rozmów za pomocą ustawień kanału powiadomień.
Używanie LocusIdCompat
Funkcje inteligentne na urządzeniu określają rozmowy, które mogą najbardziej zainteresować użytkownika. Do najważniejszych sygnałów należą aktualność i częstotliwość sesji rozmowy w każdej rozmowie. System wie o interakcjach z rozmową ze skrótów w Menu z aplikacjami lub w powiadomieniu, jeśli są one prawidłowo otagowane. System nie wie jednak o rozmowach, które odbyły się w całości w aplikacji, chyba że te interakcje są również otagowane. Dlatego zdecydowanie zalecamy dołączenie LocusIdCompat do
skrótu
i dodanie do aktywności w aplikacji lub fragmentu powiązanej adnotacji LocusIdCompat. Użyj LocusIdCompat, aby umożliwić systemowi sugestii prawidłowe ocenianie rozmowy i wyświetlanie prawidłowego czasu ostatniej interakcji użytkownika z rozmową (w tym interakcji w aplikacji). Jeśli używasz
setShortcutInfo()
do powiązania rozmowy ze skrótem, system rozmów
automatycznie dołączy odpowiedni LocusIdCompat.
Wymagania dotyczące obszaru rozmów w przypadku aplikacji kierowanych na Androida 10 lub starszego
Jeśli aplikacja nie jest kierowana na Androida 11, jej wiadomości mogą nadal pojawiać się w obszarze rozmów. Aplikacja musi jednak spełniać określone wymagania. W tej sekcji opisujemy wymagania dotyczące tych aplikacji oraz zachowanie awaryjne, jeśli aplikacja nie spełnia tych wymagań.
Podstawowym wymaganiem dotyczącym udziału w obszarze wiadomości jest to, że aplikacja musi
implementować MessagingStyle
powiadomienia, a powiadomienia muszą odwoływać się do
a długoterminowego skrótu z powiadomienia opublikowanego w
momencie opublikowania powiadomienia. Powiadomienia, które spełniają te wymagania, pojawiają się w obszarze rozmów z tym zachowaniem:
- Powiadomienie jest wyświetlane w stylu rozmowy.
- Jeśli jest zaimplementowany, dostępny jest przycisk Dymek.
- Funkcje specyficzne dla rozmowy są dostępne w tekście.
Jeśli powiadomienie nie spełnia tych wymagań, platforma używa opcji awaryjnych do sformatowania powiadomienia. Jeśli powiadomienie spełnia wymagania któregoś z przypadków awaryjnych, jest wyświetlane w obszarze rozmów ze specjalnym formatowaniem. Jeśli powiadomienie nie kwalifikuje się do żadnej z opcji awaryjnych, nie jest wyświetlane w obszarze rozmów.
Opcja awaryjna: używany jest 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 obszarze rozmów z tym zachowaniem:
- Powiadomienie jest wyświetlane w stylu rozmowy.
- Nie jest dostępny przycisk dymka.
- Funkcje specyficzne dla rozmowy nie są dostępne w tekście.
Opcja awaryjna: nie jest używany MessagingStyle, ale aplikacja jest rozpoznawana jako aplikacja do obsługi wiadomości
Jeśli powiadomienie nie używa
MessagingStyle
ale platforma rozpoznaje aplikację jako aplikację do obsługi wiadomości, a parametr
category
powiadomienia jest ustawiony na
msg,
powiadomienie jest wyświetlane w obszarze rozmów z tym zachowaniem:
- Powiadomienie jest wyświetlane w starym stylu sprzed Androida 11.
- Nie jest dostępny przycisk dymka.
- Funkcje specyficzne dla rozmowy nie są dostępne w tekście.
Wskazówki, użycie i testowanie
W tej sekcji znajdziesz ogólne wskazówki dotyczące korzystania z funkcji rozmów i ich testowania.
Kiedy należy używać rozmów?
Powiadomienia o rozmowach i powiązane z nimi skróty mają na celu poprawę wrażeń użytkownika podczas 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 mają takich 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 pasuje ona do tego obszaru.
Sprawdzone metody
Aby zwiększyć zaangażowanie i ułatwić użytkownikom interakcję z osobami i rozmowami w aplikacji, zalecamy stosowanie tych sprawdzonych metod.
- Aby nieodebrane połączenia były wyświetlane w panelu powiadomień o rozmowach z priorytetem i prawidłowo wyświetlały się w
widżecie rozmów, sformatuj powiadomienia o nieodebranych połączeniach jako
conversationsz kategorią ustawioną naCATEGORY_MISSED_CALL. - Udostępniaj użytkownikom awatary wysokiej jakości (104 dp). W przeciwnym razie system użyje inicjałów osoby, co będzie mniej angażujące.
- Nie
cancela powiadomienia o rozmowie, zanim 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ć wiadomości ani na nią odpowiedzieć. Jeśli użytkownik nie ma możliwości przeczytania wiadomości ani na nią odpowiedzenia, anulowane powiadomienie i powiązany z nim dymek zostaną usunięte, co spowoduje utratę kontekstu rozmowy. - Podaj identyfikator
dataURI dla metadanych związanych z MIME powiązanych z wiadomościami, co daje możliwość zapewnienia bogatszych wrażeń w powiadomieniach. - Aby zwiększyć zaangażowanie w widżety rozmów, użyj interfejsu
Android 12 statusAPI. - Stosuj te sprawdzone metody dotyczące
skrótów do rozmów.
- Publikuj 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 tej samej rozmowie powinny mieć ten sam identyfikator skrótu. Aby publikować skróty i raportować ich użycie, użyj metody
pushDynamicShortcut(). - Aby uniknąć przypadkowego przycięcia awatara skrótu, podaj
AdaptiveIconDrawabledla ikony skrótu. Więcej informacji znajdziesz w artykule Udostępnianie obrazów skrótów. - Aby pomóc systemowi w promowaniu skrótu, postępuj zgodnie z wytycznymi dotyczącymi uzyskiwania najlepszej pozycji. Twój skrót jest oceniany w różnych interfejsach 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
intentsotwierają bezpośrednio odpowiednią rozmowę. - Użyj bibliotek zgodności, aby wygodnie ustawić skróty jako
conversationpowiązane.
- Publikuj 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 tej samej rozmowie powinny mieć ten sam identyfikator skrótu. Aby publikować skróty i raportować ich użycie, użyj metody
Testowanie powiadomień o rozmowach i skrótów
Jeśli postępujesz zgodnie z wytycznymi dotyczącymi obszaru rozmów, rozmowy powinny automatycznie pojawiać się w obszarze rozmów. Aby sprawdzić, czy skrót jest prawidłowo zintegrowany, naciśnij powiadomienie i przytrzymaj je. Jeśli integracja jest prawidłowa, interfejs użytkownika wyświetla działania związane z rozmową. Jeśli powiadomienie nie jest połączone ze skrótem, interfejs użytkownika 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 przenoszą Cię do właściwego miejsca w aplikacji.
Dodane skróty do udostępniania są wyświetlane w wierszu udostępniania bezpośredniego w arkuszu udostępniania podczas udostępniania treści, które mogą być odbierane przez skrót do udostępniania.
Widżety rozmów
W Androidzie 12 funkcja widżetów rozmów opiera się 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 umożliwiają użytkownikom szybki powrót do rozmów, a jednocześnie wyświetlają fragmenty 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żytkowników (po jednym na każdym urządzeniu), aby wymieniać wiadomości. Na potrzeby tej procedury będziemy nazywać konta „użytkownik A” i „użytkownik B”.
Wykonaj następujące czynności:
- Na urządzeniu użytkownika A naciśnij i przytrzymaj Menu z aplikacjami. W selektorze widżetów kliknij nowy widżet rozmowy, jak pokazano na rysunku 2.
- Przeciągnij widżet na ekran główny. Powinna być dostępna lista aktywnych lub ostatnich rozmów z aplikacji użytkownika A.
- Teraz na urządzeniu użytkownika B wyślij wiadomość testową do użytkownika A.
- Wróć na urządzenie użytkownika A i sprawdź, czy widżet został zaktualizowany, aby odzwierciedlał powiadomienie o wiadomości od użytkownika B.
- Opcjonalnie: poproś użytkownika A i użytkownika B, aby ustawili różne wartości stanu rozmowy, aby upewnić się, że ich widżety prawidłowo je odzwierciedlają. Listę wartości stanu znajdziesz w artykule ConversationStatus.