Powiadomienia i widżety dotyczące 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ąble będą wyświetlane w przestrzeni rozmowy.

Android 12, który bazuje na funkcjach Androida 11, oferuje 2 nowe funkcje dotyczące 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, dzięki czemu mogą szybko przeglądać ostatnie rozmowy.

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

Omówienie powiadomień w 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 stosować 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.

  • Do tworzenia widżetów rozmów (wdrożonych w Androidzie 12).

    conv_bubbles

    Rys. 1. Powiadomienie wyświetlane jako dymek w schowku powiadomień

    conv_notification

    Rysunek 2. Obszar rozmowy znajduje się u góry obszaru powiadomień

Oprócz linku do skrótu reprezentującego rozmowę powiadomienie wykorzystuje też 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 dymka dla konkretnej rozmowy.

Partnerzy, którzy implementują rozmowy, muszą również wdrożyć ważne rozmowy. Implementacja rozmów może jednak być dostosowana do koncepcji OEM o podobnej charakterystyce. Partnerzy mogą dostosować sekcję rozmowy do interfejsu użytkownika swojego systemu. Partner nie musi modyfikować ani wdrażać kodu HAL, sterownika, jądra ani 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 mieć pewność, że Twoja wersja funkcji działa prawidłowo, sprawdź te kwestie:

  1. Aplikacje, które w pełni obsługują interfejs Conversation API, wyświetlają swoje powiadomienia w nowej sekcji i mogą je dostosowywać do poszczególnych rozmów, a nie do ogólnego kanału NotificationChannel.

  2. Dymki w określonej rozmowie 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 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 reprezentacjach rozmów utworzonych w Androidzie 11 (jak opisano w poprzedniej sekcji), umożliwiając aplikacjom wyświetlanie stanu rozmów 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 użytkownikom ł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 i pokazują fragmenty ich stanu.

Partner musi wdrożyć:

  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żetu:

Podczas implementowania widżetów konwersacji 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 API stanu, 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 implementacji nowych urządzeń i implementacji aktualizacji.
  • 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 pozwala rozszerzyć listę 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

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

  2. Gdy na urządzenie wysyłane są powiadomienia z wybranej rozmowy, widżet jest aktualizowany, aby odzwierciedlać te powiadomienia.

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

  4. Użytkownicy mogą zmieniać rozmiary widżetów, a widżety mogą zmieniać swoje rozmiary w zależności od bieżącego programu uruchamiającego. Układy widżetów muszą dobrze działać na różnych rozmiarach Launchera na różnych urządzeniach oraz po zmianie 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.