Powiadomienia i widżety rozmów

Android 11 umożliwia dostosowywanie zachowania i umieszczania powiadomień o rozmowach w panelu powiadomień na podstawie priorytetu i poziomu alertu. Dzięki temu rozmowy można oznaczać jako ważne, a specyficzne dla nich bąbelki będą wyświetlane w przestrzeni rozmowy.

Bazując na funkcjach Androida 11, Android 12 oferuje 2 nowe funkcje rozmów:

  • Funkcja Ostatnie rozmowy w Ustawieniach umożliwia użytkownikom dostosowywanie sposobu wyświetlania powiadomień o ostatnich rozmowach bez konieczności czekania na powiadomienie.

  • Widżet rozmów umożliwia użytkownikom łatwe otwieranie czatów na ekranie głównym oraz szybkie przeglądanie ostatnich rozmów.

Dokument ten zawiera informacje o wdrożeniu, dostosowywaniu i weryfikacji powiadomień i widżetów dotyczących rozmów.

Omówienie powiadomień o rozmowach

Android 11 wprowadza nowy element systemu – rozmowę, która jest reprezentowana przez istniejący obiekt skrótu udostępniania (wprowadzony w Androidzie 9).

Element Conversation można wykorzystać w taki sposób:

  • Aby udostępniać dane rozmów między aplikacjami w całym systemie za pomocą panelu udostępniania (dostępnego już w Androidzie 10).

  • Bańki(skróty) w Androidzie 11. Patrz rysunek 1.

  • Aby korzystać z nowego pokoju rozmów w panelu powiadomień (wprowadzonego w Androidzie 11). Patrz rysunek 2.

  • Służy do tworzenia widżetów rozmów (zaimplementowanych w Androidzie 12).

    dymki_konw.

    Rysunek 1. Powiadomienia wyświetlane w postaci dymka z panelu powiadomień

    conv_notification

    Rysunek 2. Obszar rozmowy znajdujący się u góry obszaru powiadomień

Oprócz linku do skrótu reprezentującego rozmowę powiadomienie wykorzystuje również MessagingStyle, aby uwzględnić ostatnią wiadomość z rozmowy w pokoju rozmowy.

Partnerzy GMS muszą wdrożyć:

  • nowy Pokój rozmów jako osobna sekcja u góry obszaru powiadomień;
  • Styl powiadomienia, który umożliwia i obsługuje wzór okienka dla konkretnej rozmowy.

Partnerzy, którzy stosują funkcję rozmów, muszą też wdrożyć funkcję Ważne rozmowy. Implementacja rozmów może jednak być dopasowana do koncepcji OEM o podobnej charakterystyce. Ogólnie partnerzy mogą swobodnie dopasować sekcję rozmowy do konkretnego interfejsu systemu. Partner nie musi modyfikować ani wdrażać kodu HAL, sterownika, jądra lub rozszerzeń.

Zapoznaj się z 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 upewnić się, że Twoja wersja funkcji działa zgodnie z oczekiwaniami, sprawdź te kwestie:

  1. Aplikacje, które w pełni obsługują interfejs Conversation API, widzą swoje powiadomienia w nowej sekcji. Mogą je dostosowywać za pomocą rozmów, a nie przy użyciu ogólnego interfejsu notificationChannel.

  2. Działają dymki z informacjami o rozmowie.

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

  • testów CTS.

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

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

Omówienie widżetów rozmów

W Androidzie 12 funkcja widżetu rozmowy opiera się na prezentacjach rozmów utworzonych w Androidzie 11 (jak opisano w poprzedniej sekcji), umożliwiając aplikacjom podawanie stanu rozmów wyświetlanych w widżetach rozmów.

conv_widgets

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

Widżet rozmowy w Androidzie 12 zachęca do nawiązywania kontaktów, ponieważ umożliwia ł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 także wyświetlają fragmenty ich stanu.

Partner musi wdrożyć te elementy:

  1. Widżet udostępniany przez SystemUI.
  2. Procedura dodawania widżetów z ekranu wyboru widżetów.
  3. Obsługa zmiany rozmiaru widżetu:

Podczas implementowania widżetów konwersacyjnych pamiętaj o tych zależnościach:

  • Partner nie musi modyfikować ani wdrażać kodu HAL, sterownika ani jądra.
  • Do implementacji używany jest interfejs Status API, który umożliwia aplikacjom dodawanie do rozmowy informacji o stanie lub dostępności oraz powiązany widżet.
  • Ten proces jest taki sam zarówno w przypadku implementacji nowych urządzeń, jak i uaktualniania.
  • Funkcja widżetów rozmów jest zależna od nowej funkcji wprowadzonej w Androidzie 12, która przechowuje w pamięci podręcznej ostatnio wyświetlane rozmowy (np. z powiadomień). Ta funkcja umożliwia rozszerzenie listy rozmów, które użytkownik może dodać do ekranu głównego.

Zapoznaj się z 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 w konwersacji nie można włączyć ani wyłączyć. 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 prawidłowo, sprawdź te kwestie:

  1. Po długim naciśnięciu Launchera można dodać nowy widżet rozmowy za pomocą selektora widżetów. Interfejs selektora widżetów:

    widget_picker

    Rysunek 4. UI selektora widżetów do dodawania nowych widżetów rozmów

  2. Przy wysyłaniu na urządzenie powiadomień z wybranej rozmowy widżet jest aktualizowany tak, aby odzwierciedlać te powiadomienia.

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

  4. Użytkownicy mogą zmieniać rozmiar widżetów i widżetów w zależności od bieżącego Menu z aplikacjami. Układy widżetów muszą dobrze działać z różnymi rozmiarami Menu z aplikacjami na różnych urządzeniach i ze zmianą rozmiaru widżetu.

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

  • testy CTS (PeopleManagerTest) interfejsu API.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Ręczne testy wymagań dotyczących GMS – rozmowy.