Powiadomienia o rozmowach i widżety

W systemie Android 11 dodano obsługę dostosowywania zachowania i rozmieszczenia powiadomień o konwersacjach w obszarze powiadomień według priorytetu i poziomu alertów, umożliwiając oznaczanie rozmów jako ważnych i wyświetlanie dymków specyficznych dla konwersacji w obszarze konwersacji.

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

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

  • Funkcja Widżet konwersacji umożliwia użytkownikom łatwe otwieranie czatów na ekranie głównym, zapewniając szybki podgląd ostatnich rozmów.

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

Omówienie powiadomień o rozmowach

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

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

  • Aby udostępniać dane rozmów między aplikacjami w całym systemie za pośrednictwem arkusza udostępniania (już w systemie Android 10).

  • Do jazdy bańkami ( skróty w Androidzie 11). Zobacz rysunek 1 .

  • Aby wziąć udział w nowej przestrzeni konwersacji w obszarze 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 w postaci dymku w szufladzie powiadomień

    conv_notification

    Rysunek 2: Obszar rozmów znajdujący się w górnej części obszaru powiadomień

Oprócz łącza do skrótu reprezentującego rozmowę, powiadomienie wykorzystuje również MessagingStyle, aby uwzględnić ostatnią wiadomość konwersacji w obszarze konwersacji.

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

  • Nowa przestrzeń rozmów jako osobna sekcja nad obszarem powiadomień.
  • Styl powiadomień, który umożliwia i obsługuje wzór bąbelków specyficzny dla konwersacji.

Partnerzy wdrażający konwersacje są zobowiązani również do implementowania ważnych konwersacji. Jednakże wdrożenie Conversations można dostosować do koncepcji OEM o podobnym charakterze. Ogólnie rzecz biorąc, partnerzy mają swobodę dostosowania sekcji konwersacji do swojego 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 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/

Walidacja

Aby mieć pewność, że Twoja wersja funkcji działa zgodnie z oczekiwaniami, 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 na podstawie konwersacji, a nie ogólnego kanału NotificationChannel .

  2. Działają dymki specyficzne dla konwersacji.

Aby zweryfikować wdrożenie, 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 konwersacji

W systemie Android 12 funkcja Widżet konwersacji opiera się na reprezentacjach konwersacji utworzonych w systemie Android 11 (jak opisano w poprzedniej sekcji), umożliwiając aplikacjom udostępnianie stanu tych rozmów, które są wyświetlane w widżetach konwersacji.

conv_widgets

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

Funkcja Widżet konwersacji w systemie Android 12 wspomaga połączenie, umożliwiając użytkownikom łatwe otwieranie czatów na ekranie głównym. Widżety to ulepszone skróty, które pozwalają użytkownikom sprawnie wracać do rozmów, pokazując jednocześnie fragmenty statusów rozmów.

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

  1. Widżet dostarczony przez SystemUI.
  2. Procedura dodawania tych widżetów z ekranu wybierania widżetów.
  3. Obsługa zmiany rozmiaru widżetu w następujący sposób:

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

  • Partner nie musi modyfikować ani wdrażać kodu HAL/sterownika/jądra.
  • Do implementacji wykorzystywany 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 zarówno w przypadku implementacji nowych urządzeń, jak i aktualizacji.
  • Funkcja Widżety konwersacji jest zależna od nowej funkcji uruchomionej w systemie Android 12, która przechowuje w pamięci podręcznej ostatnio oglądane rozmowy (na przykład z powiadomień). Ta ostatnia funkcja pozwala rozszerzyć listę rozmów, które użytkownik może 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

Nie można włączyć ani wyłączyć funkcji Widżety konwersacji. Partner może jednak zmieniać układ szablonów widżetów, o ile zostaną spełnione wymagania GMS.

Walidacja

Aby mieć pewność, że Twoja wersja funkcji działa zgodnie z oczekiwaniami, sprawdź następujące elementy:

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

    widget_picker

    Rysunek 4: Interfejs selektora widżetów umożliwiający dodanie nowego widżetu konwersacji

  2. Po wysłaniu na urządzenie powiadomień z wybranej rozmowy widżet jest aktualizowany w celu odzwierciedlenia tych powiadomień.

  3. Po zastosowaniu statusów do tej konwersacji za pomocą interfejsu API ConversationStatus widżet odzwierciedla te statusy.

  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 współpracować z różnymi rozmiarami programu uruchamiającego na różnych urządzeniach i przy zmianie rozmiaru widżetu.

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

  • Testy CTS (PeopleManagerTest) dla powierzchni API.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Testy manualne pod kątem wymagań GMS - Rozmowy.