Powiadomienia o rozmowie i widżety

W systemie Android 11 dodano obsługę dostosowywania zachowania i umieszczania powiadomień o konwersacji w obszarze powiadomień według priorytetu i poziomu alertów, umożliwiając oznaczanie konwersacji jako ważnych i uruchamianie dymków związanych z konwersacją w przestrzeni konwersacji.

Opierając się na tych funkcjach systemu Android 11, system Android 12 oferuje dwie nowe funkcje konwersacji:

  • Funkcja Ostatnie rozmowy w Ustawieniach umożliwia użytkownikom dostosowanie zachowania powiadomień dla ostatnich rozmów bez czekania na powiadomienie.

  • Funkcja Conversation Widget umożliwia użytkownikom łatwe otwieranie czatów na ekranie głównym, dając szybki podgląd ostatnich rozmów.

W tym dokumencie opisano aspekty implementacji, dostosowywania i walidacji powiadomień o konwersacji i widżetów.

Omówienie powiadomień o rozmowie

W systemie Android 11 wprowadzono nowy element podstawowy systemu, konwersację, który jest reprezentowany przez istniejący obiekt skrótu udostępniania (który został wdrożony w systemie Android 9).

Prymitywu Konwersacje można używać w następujący sposób:

  • Aby udostępniać dane konwersacji między aplikacjami w całym systemie za pomocą Sharesheet (już w systemie Android 10).

  • Do prowadzenia baniek ( skróty w Androidzie 11). Zobacz Rysunek 1 .

  • Aby wziąć udział w nowej przestrzeni konwersacji nad obszarem powiadomień (zaimplementowanym w systemie Android 11). Zobacz Rysunek 2 .

  • Do tworzenia widżetów konwersacji (zaimplementowanych w systemie Android 12).

    conv_bubbles

    Rysunek 1: Powiadomienie uruchamiane jako dymek z szuflady powiadomień

    conv_notification

    Rysunek 2: Przestrzeń rozmowy znajdująca się w górnej części obszaru powiadomień

Poza łączem do skrótu reprezentującego konwersację, powiadomienie wykorzystuje również MessagingStyle , aby uwzględnić ostatnią wiadomość konwersacji w przestrzeni konwersacji.

Partnerzy GMS są zobowiązani do wdrożenia następujących elementów:

  • Nowa przestrzeń Konwersacje jako osobna sekcja w górnej części obszaru powiadomień.
  • Styl powiadomień, który umożliwia i obsługuje wzór bąbelków charakterystyczny dla konwersacji.

Partnerzy, którzy wdrażają konwersacje, są również zobowiązani do wdrożenia ważnych konwersacji. Jednak wdrożenie konwersacji można dostosować do koncepcji OEM o podobnym charakterze. Ogólnie rzecz biorąc, partnerzy mają swobodę dostosowywania sekcji konwersacji do konkretnego interfejsu użytkownika systemu. Partner nie musi modyfikować ani wdrażać HAL/sterownika/kodu jądra/rozszerzeń.

Zobacz następującą implementację referencyjną w sekcjach SystemUI & 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/

Walidacja

Aby upewnić się, że Twoja wersja funkcji działa zgodnie z przeznaczeniem, sprawdź następujące elementy:

  1. Aplikacje, które w pełni obsługują interfejs Conversation API, widzą swoje powiadomienia w nowej sekcji i mogą dostosowywać te powiadomienia przez konwersację, a nie przez ogólny kanał NotificationChannel .

  2. Działają dymki związane z konwersacją.

Aby zweryfikować implementację, użyj następujących 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/
    
    

Przegląd widżetów rozmów

W systemie Android 12 funkcja widżetu konwersacji opiera się na reprezentacjach konwersacji utworzonych w systemie Android 11 (jak opisano w poprzedniej sekcji), umożliwiając aplikacjom dostarczanie stanu dla konwersacji wyświetlanych w widżetach konwersacji.

conv_widgets

Rysunek 3: Konwersacje wyświetlane w widżetach konwersacji

Funkcja Conversation Widget w systemie Android 12 promuje połączenie, umożliwiając użytkownikom łatwe otwieranie czatów na ekranie głównym. Widżety to ulepszone skróty, które umożliwiają użytkownikom sprawny powrót do konwersacji, wyświetlając fragmenty stanów konwersacji.

Partner musi wdrożyć następujące elementy:

  1. Widget dostarczony przez SystemUI.
  2. Przepływ do dodawania tych widżetów z ekranu wyboru widżetów.
  3. Obsługa zmiany rozmiaru widżetu w następujący sposób:

Podczas wdrażania widżetów konwersacji pamiętaj o następujących zależnościach:

  • Partner nie musi modyfikować ani implementować kodu HAL/sterownika/jądra.
  • Do implementacji używany jest interfejs Status API, który umożliwia aplikacjom dodawanie informacji o stanie lub dostępności do konwersacji i powiązanego widżetu.
  • Proces jest taki sam zarówno w przypadku nowych implementacji urządzeń, jak i implementacji aktualizacji.
  • Funkcja Conversation Widgets jest zależna od nowej funkcji uruchamianej w systemie Android 12, która buforuje ostatnio oglądane rozmowy (na przykład z powiadomień). Ta ostatnia funkcja pozwala rozszerzyć listę rozmów, które użytkownik mógłby potencjalnie dodać do swojego ekranu głównego.

Zobacz następującą 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 konwersacji nie można włączać ani wyłączać. Partner może jednak zmieniać układy szablonów widżetów, o ile spełnione są wymagania GMS.

Walidacja

Aby upewnić się, że Twoja wersja funkcji działa zgodnie z przeznaczeniem, sprawdź następujące elementy:

  1. Po długim naciśnięciu Launchera można dodać nowy widżet konwersacji za pomocą selektora widżetów. Zobacz rysunek 4, aby zapoznać się z interfejsem selektora widżetów:

    widget_picker

    Rysunek 4: Interfejs selektora widżetów, aby dodać nowy widżet konwersacji

  2. Podczas wysyłania powiadomień do urządzenia z wybranej konwersacji widżet jest aktualizowany w celu odzwierciedlenia tych powiadomień.

  3. Po zastosowaniu stanów do tej konwersacji za pomocą interfejsu API ConversationStatus widget odzwierciedla te stany.

  4. Użytkownicy mogą zmieniać rozmiar 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ć z różnymi rozmiarami programu uruchamiającego na różnych urządzeniach i przy zmianie rozmiaru widżetu.

Aby zweryfikować implementację, użyj następujących testów w pakiecie powiadomień:

  • Testy CTS (PeopleManagerTest) dla powierzchni interfejsu API.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Testy ręczne dla wymagań GMS - Konwersacje.