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).
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).
Rys. 1. Powiadomienie wyświetlane jako dymek w schowku powiadomień
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:
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.
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.
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ć:
- Widżet dostarczony przez SystemUI.
- Procedura dodawania tych widżetów na ekranie wyboru widżetów.
- Obsługa zmiany rozmiaru widżetu:
- Użyj elementu
onAppWidgetOptionsChanged()
, aby zmienić układ na taki, który lepiej pasuje do danego rozmiaru, gdy użytkownik zmieni rozmiar układu lub obróci ekran w układ poziomy. - Aby prawidłowo ograniczyć zmiany rozmiaru widżetu, użyj wartości
maxResizeHeight
,maxResizeWidth
,minWidth
,minHeight
,minResizeWidth
iminResizeHeight
.
- Użyj elementu
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:
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:
Rys. 4. UI selektora widżetów do dodawania nowych widżetów rozmów
Gdy na urządzenie wysyłane są powiadomienia z wybranej rozmowy, widżet jest aktualizowany, aby odzwierciedlać te powiadomienia.
Po zastosowaniu stanów do tej rozmowy za pomocą interfejsu API
ConversationStatus
widżet odzwierciedla te stany.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.