Dostosowywanie aplikacji referencyjnej

W tej sekcji znajdziesz informacje o tym, jak dostosować aplikację referencyjną Centrum sterowania i interfejs.

Wzorce przeglądania i interfejs

W tej sekcji opisujemy ścieżki użytkownika i sposób uruchamiania Centrum sterowania.

Uruchamianie Centrum sterowania

Centrum sterowania możesz uruchomić za pomocą programu uruchamiającego aplikacje lub ikony na pasku nawigacyjnym interfejsu systemu. Ikona pojawia się tylko w kompilacjach, w których włączono widoczność użytkowników w tle (więcej informacji znajdziesz w UserHandleAware).

Centrum sterowania możesz wyświetlić w dowolnym momencie. Centrum sterowania składa się z półprzezroczystych okien i przezroczystych teł, dzięki czemu może pojawiać się nad dowolną inną aplikacją, w tym nad odtwarzanymi filmami i multimediami. Na stronie docelowej aplikacji:

  • układ ekranów oraz korzystanie z ekranów lokalnychzdalnych;
  • Ekrany wypełnione multimediami i elementami sterującymi multimediami.
  • Jak każdy ekran wprowadza szczegółowy widok elementów sterujących multimediami (i nie tylko).

Układ ekranów odpowiada ich rozmieszczeniu w pojeździe. Każdy ekran to DevicePickerScreen. Aby dostosować lokalizację i rozmiar każdego ekranu, użyj nakładki zasobów w czasie działania (RRO). Więcej informacji znajdziesz w artykule Zmiana wartości zasobów aplikacji w czasie działania.

Na każdym wyświetlaczu, na którym jest otwarte Centrum sterowania, wyświetla się inny ekran z jasno podświetlonym obramowaniem. To ekran lokalny, czyli wyświetlacz, który jest używany.

Każdy kolejny ekran to ekran zdalny, który reprezentuje inny wyświetlacz w samochodzie. Możesz go zidentyfikować na podstawie układu ekranów w fragmencie. Aby obliczyć łączną liczbę stref pasażerów skonfigurowanych w pojeździe, użyj funkcji CarOccupantZoneManager#getAllOccupantZones.

Każdy ekran definiuje atrybut niestandardowy controlcenter:occupantZoneId, aby powiązać dane z odpowiednią strefą pasażera. Gdy aplikacja multimedialna jest odtwarzana na konkretnym wyświetlaczu, na odpowiednim ekranie wyświetla się okładka albumu. Pod ekranem wyświetla się przycisk Odtwórz (lub Wstrzymaj).

Jeśli aktywna aplikacja multimedialna jest widocznym zadaniem (otwartym za Centrum sterowania), przycisk Udostępnij obok przycisku Odtwórz jest włączony, aby otworzyć stronę klonowania. Udostępnij umożliwia udostępnianie ekranu aplikacji multimedialnej i jest najbardziej przydatne w przypadku aplikacji multimedialnych z wideo.

Elementy ekranu

Kliknięcie ekranu spowoduje wyświetlenie szczegółowego widoku multimediów odtwarzanych na wyświetlaczu. Jest to tzw. ekran szczegółów. Wyświetlają się metadane multimediów, takie jak tytuł, postęp odtwarzania i wykonawca. Te przyciski zapewniają dodatkową kontrolę nad strefą pasażera.

  • Wyjście audio pokazuje, które wyjście audio odtwarza multimedia, np. głośniki w samochodzie lub słuchawki. Wyjście audio otwiera okno, w którym możesz zmienić wyjście audio i głośność multimediów.

  • Blokada wprowadzania blokuje wprowadzanie danych na ekranie. Tej operacji nie można zastosować na ekranie kierowcy.

  • Zasilanie wyświetlacza wyłącza zasilanie ekranu. Tej operacji nie można zastosować na ekranie kierowcy.

W widoku Szczegóły znajduje się przycisk Udostępnij, który należy kliknąć, gdy multimedia są widocznym zadaniem za aplikacją Centrum sterowania. Kliknięcie Udostępnij otwiera stronę klonowania:

Proces dublowania i wspólnego oglądania między nadawcą (u góry) a odbiorcą (u dołu)
Rysunek 2. Odbicie strony i wspólne oglądanie treści przez nadawcę (u góry) i odbiorcę (u dołu).

Rozpoczynanie sesji wspólnego oglądania

Strona odzwierciedlająca jest podobna do strony docelowej, ponieważ korzysta z RRO.

Aby dodać ekran do wspólnego oglądania, kliknij go, a potem kliknij Gotowe.

Spowoduje to otwarcie Mirroring Activity, w którym będzie hostowana udostępniona aplikacja. Pojawią się też pływające, tymczasowe elementy sterujące, które pozwolą opuścić sesję wspólnego oglądania lub wrócić na stronę Klonowanie, aby dodać lub usunąć uczestników.

Klonowanie aktywności, czyli wyświetlanie udostępnionej aplikacji z pływającymi elementami sterującymi do zarządzania sesją na zegarku.
Rysunek 3. Klonowanie aktywności z przejściowymi pływającymi elementami sterującymi.

Podsumowanie

Poniżej znajdziesz podsumowanie różnych stron w Centrum sterowania.

Schemat blokowy przedstawiający różne strony i przejścia w aplikacji Centrum sterowania.
Rysunek 4. stron Centrum sterowania
.

Wskazówki dotyczące dostosowywania

Centrum sterowania korzysta z biblioteki interfejsu samochodu, która umożliwia dostosowywanie i zapewnia podstawowy motyw oraz strukturę, które można zastosować w takiej postaci lub zmodyfikować zgodnie z tymi ograniczeniami.

Dostosowywanie Opis
SHOULD

Dostosuj ogólne motywy i style za pomocą nakładki RRO, np.:

  • Palety kolorów
  • Rozmiary
  • Wygląd tekstu
  • Wygląd okna
  • Obiekty rysowalne
  • Wartości konfiguracji
MAY Modyfikowanie struktury interfejsu Centrum sterowania.

Centrum sterowania należy do pakietu aplikacji systemowych, który obejmuje aplikacje Media, Centrum powiadomień i Uruchamiacz aplikacji. Te aplikacje korzystają ze stylów i zasobów zdefiniowanych na różnych poziomach struktury AOSP:

framework/base/core
Wszystkie podstawowe style Androida są zdefiniowane tutaj. Wszystkie motywy aplikacji systemowych są oparte na Theme.DeviceDefault, czyli motywie przeznaczonym dla producentów OEM do dostosowywania domyślnego wyglądu urządzenia.

packages/services/Car/car_product/overlay:
Ten folder zawiera zastąpienia Theme.DeviceDefault, które są używane do tworzenia wyglądu i działania Androida Automotive w wersji AOSP. Producenci OEM mogą zrezygnować z tej nakładki i używać własnej.

packages/apps/Car/libs/car-ui-lib:
Ta biblioteka definiuje komponenty i zasoby AAOS wspólne dla aplikacji systemowych i aplikacji niepowiązanych, które można dostosowywać. Więcej informacji znajdziesz w przewodniku integracji biblioteki Car UI.

packages/apps/Car/libs/car-apps-common:
Wspólne kolory i style w aplikacjach systemowych dostarczanych przez AOSP. Możesz używać nakładek, aby dostosowywać te elementy (podobnie jak w przypadku packages/services/Car/car_product/overlay).

packages/apps/Car/MultiDisplay/ControlCenter:
Wszystkie aplikacje systemowe mają motyw, który rozciąga się od Theme.CarUi i jest zdefiniowany w car-ui-lib. ControlCenterActivity uses custom Theme.Transparent, that extends Theme.CarUi.

Aby obsługiwać przepływ (np. wspólne oglądanie, które wymaga widoczności odzwierciedlonego zadania), Centrum sterowania używa kombinacji półprzezroczystych okien i przezroczystych teł, które nie przenoszą aplikacji w tle ani nie wysyłają Lifecycle events.

<style name="Theme.Transparent" parent="@style/Theme.CarUi.NoToolbar">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@color/transparent</item>
</style>