Powiadomienia i widżety dotyczące rozmów

Android 11 umożliwia dostosowywanie zachowania i umiejscowienia powiadomień o rozmowach na panelu powiadomień według priorytetu i poziomu alertu. Dzięki temu rozmowy można oznaczać jako ważne i uruchamiać w przestrzeni rozmowy dymki dotyczące konkretnych rozmów.

Android 12 rozszerza te funkcje Androida 11 o 2 nowe funkcje rozmów:

  • Funkcja Ostatnie rozmowy w Ustawieniach umożliwia użytkownikom dostosowywanie działania powiadomień dotyczących ostatnich rozmów bez czekania na powiadomienie.

  • Widżet rozmów umożliwia użytkownikom łatwe otwieranie czatów na ekranie głównym, co pozwala szybko przeglądać ostatnie rozmowy.

W tym dokumencie opisujemy aspekty implementacji, dostosowywania i weryfikacji powiadomień i widżetów dotyczących rozmów.

Omówienie powiadomień w rozmowach

W Androidzie 11 wprowadzono nowy element systemowy, czyli obiekt skrótu do udostępniania (wprowadzony w Androidzie 9), który reprezentuje rozmowę.

Element Conversations może być używany w ten sposób:

  • Udostępnianie danych z Konwersacji między aplikacjami w systemie za pomocą arkusza udostępniania (dostępnego już w Androidzie 10).

  • W przypadku dymków(skrótów w Androidzie 11) podczas jazdy. Zobacz rysunek 1.

  • Aby uczestniczyć w nowym pokoju rozmów u góry panelu powiadomień (wprowadzonym w Androidzie 11). Zobacz rysunek 2.

  • Do tworzenia widżetów rozmowy (zostały one wprowadzone w Androidzie 12).

    conv_bubbles

    Ilustracja 1. Powiadomienie uruchamiane jako dymek z panelu powiadomień

    conv_notification

    Rysunek 2. Miejsce na rozmowy u góry obszaru powiadomień

Oprócz linku do skrótu reprezentującego rozmowę powiadomienie używa też MessagingStyle, aby uwzględnić ostatnią wiadomość z rozmowy w przestrzeni Rozmowa.

Partnerzy GMS muszą wdrożyć te funkcje:

  • Nowy pokój do rozmów jako osobna sekcja u góry obszaru powiadomień.
  • Styl powiadomień, który umożliwia i obsługuje wzorzec dymków specyficzny dla rozmowy.

Partnerzy, którzy wdrażają rozmowy, muszą też wdrożyć ważne rozmowy. Wdrożenie funkcji Rozmowy może być jednak zgodne z koncepcjami OEM o podobnym charakterze. Ogólnie rzecz biorąc, partnerzy mogą dostosować sekcję rozmowy do swojego interfejsu systemu. Partner nie musi modyfikować ani wdrażać kodu HAL/sterownika/jądra/rozszerzeń.

Zobacz tę implementację referencyjną w sekcjach SystemUI i PeopleService w AOSP:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Weryfikacja

Aby mieć pewność, że Twoja wersja funkcji działa zgodnie z oczekiwaniami, sprawdź, czy:

  1. Aplikacje, które w pełni obsługują interfejs Conversation API, widzą powiadomienia w nowej sekcji i mogą dostosowywać te powiadomienia według rozmowy, a nie według ogólnego NotificationChannel.

  2. Dymki w określonych rozmowach działają.

Aby sprawdzić implementację, użyj tych testów w pakiecie powiadomień:

  • testy CTS,

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Testy weryfikatora CTS.

    cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
    
    

Omówienie widżetów rozmów

W Androidzie 12 funkcja widżetu rozmowy wykorzystuje reprezentacje rozmów utworzone w Androidzie 11 (zgodnie z opisem w poprzedniej sekcji), umożliwiając aplikacjom podawanie stanu tych rozmów, które są wyświetlane w widżetach rozmowy.

conv_widgets

Ilustracja 3. Rozmowy wyświetlane w widżetach rozmów

Funkcja widżetu do rozmów w Androidzie 12 ułatwia kontaktowanie się z innymi, ponieważ pozwala użytkownikom łatwo otwierać czaty na ekranie głównym. Widżety to ulepszone skróty, które umożliwiają użytkownikom szybki powrót do rozmów, a jednocześnie wyświetlają fragmenty stanów rozmów.

Partner musi wdrożyć te elementy:

  1. Widżet dostarczony przez SystemUI.
  2. Procedura dodawania tych widżetów na ekranie wyboru widżetów.
  3. Obsługa zmiany rozmiaru widżetów:

Podczas wdrażania widżetów do rozmów pamiętaj o tych zależnościach:

  • Partner nie musi modyfikować ani wdrażać kodu HAL/sterownika/jądra.
  • Do wdrożenia używany jest interfejs Status API, który umożliwia aplikacjom dodawanie informacji o stanie lub dostępności do rozmowy i powiązanego z nią widżetu.
  • Proces jest taki sam w przypadku wdrożeń na nowych urządzeniach i wdrożeń aktualizacji.
  • Funkcja widżetów rozmów jest zależna od nowej funkcji, która zostanie wprowadzona w Androidzie 12 i która buforuje ostatnio wyświetlone rozmowy (np. z powiadomień). Ta ostatnia funkcja pozwala rozszerzyć listę rozmów, które użytkownik może dodać do ekranu głównego.

Zapoznaj się z tą implementacją referencyjną w plikach SystemUI i Launcher3:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Dostosowywanie

Funkcji widżetów rozmów nie można włączać ani wyłączać. Partner może jednak zmieniać układy szablonów widżetów, o ile spełnia wymagania GMS.

Weryfikacja

Aby mieć pewność, że Twoja wersja funkcji działa zgodnie z oczekiwaniami, sprawdź, czy:

  1. Po długim naciśnięciu Launchera w wybieraku widżetów można dodać nowy widżet rozmowy. Interfejs selektora widżetów znajdziesz na rysunku 4:

    widget_picker

    Ilustracja 4. Interfejs wyboru widżetów do dodawania nowego widżetu rozmów

  2. Po wysłaniu powiadomień na urządzenie z wybranej rozmowy widżet zostanie zaktualizowany, aby odzwierciedlać te powiadomienia.

  3. Po zastosowaniu stanów do tej rozmowy za pomocą interfejsu API ConversationStatus widżet odzwierciedla te stany.

  4. Użytkownicy mogą zmieniać rozmiar widżetów, a widżety mogą zmieniać rozmiar w zależności od bieżącego programu uruchamiającego. Układy widżetów muszą dobrze działać w przypadku różnych rozmiarów Launchera na różnych urządzeniach i podczas zmiany rozmiaru widżetu.

Aby sprawdzić implementację, użyj tych testów w pakiecie powiadomień:

  • Testy CTS (PeopleManagerTest) dla platform interfejsu API.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Testy ręczne dotyczące wymagań GMS – rozmowy.