Konfiguracja formatu tarczy zegarka

W tym przewodniku znajdziesz wskazówki dotyczące narzędzi potrzebnych do skonfigurowania tarczy zegarka za pomocą formatu tarczy zegarka, kilka sugestii dotyczących struktury projektu oraz szczegółowy przewodnik, jak zastosować narzędzia do utworzenia tej struktury.

Wymagania wstępne

Aby przygotować środowisko programistyczne do korzystania z formatu tarczy zegarka, wykonaj te czynności konfiguracyjne:

  1. Zainstaluj pakiet SDK na Androida 13 (poziom interfejsu API 33) lub nowszego. Pakiet SDK zawiera inne wymagane narzędzia, np. aapt2 i android.jar.
  2. Zainstaluj program wiersza poleceń bundletool.
  3. Podpisz wersję aplikacji do debugowania, która zawiera projekt tarczy zegarka. Podpisany pakiet Android App Bundle możesz wygenerować w Android Studio lub podpisać kompilację do debugowania ręcznie.

Struktura projektu

Gdy tworzysz własną tarczę zegarka, która używa formatu tarczy zegarka, pakiet Android App Bundle zawierający plik tej tarczy musi być całkowicie niezależny od pakietu Android App Bundle zawierającego logikę aplikacji na Wear OS. Niektóre sklepy z aplikacjami, w tym Google Play, uniemożliwiają przesłanie pakietu Android App Bundle zawierającego zarówno logikę Wear OS, jak i niestandardową tarczę zegarka.

Utwórz pakiet tarcz zegarka

Aby utworzyć pakiet Android App Bundle zawierający plik tarczy zegarka, wykonaj czynności opisane w sekcjach poniżej.

Deklarowanie użycia formatu tarczy zegarka

W pliku manifestu nowej aplikacji (AndroidManifest.xml) dodaj właściwość aplikacji, która wskazuje korzystanie z formatu tarczy zegarka:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest ...>
    <application ...>
        <property
            android:name="com.google.wear.watchface.format.version"
            android:value="1" />
    </application>
</manifest>

Deklarowanie metadanych tarczy zegarka

W katalogu zasobów res/xml aplikacji utwórz nowy plik o nazwie watch_face_info.xml. Tutaj definiuje się metadane tarczy zegarka:

<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
    <!-- Only "Preview" is required. -->
    <Preview value="@drawable/watch_face_preview" />
    <Category value="CATEGORY_EMPTY" />
    <AvailableInRetail value="true" />
    <MultipleInstancesAllowed value="true" />
    <Editable value="true" />
</WatchFaceInfo>

Pola w tym pliku określają następujące szczegóły:

Preview
Odnosi się do elementu, który można rysować, który zawiera obraz podglądu tarczy zegarka.
Category

Określa kategorię tarczy zegarka. Musi to być ciąg lub odwołanie do ciągu znaków, np. @string/ref_name. Każdy producent urządzenia może zdefiniować własny zestaw kategorii tarcz zegarka.

Wartość domyślna: empty_category_meta, która grupuje tarczę zegarka z innymi tarczami z „pustą kategorią” u dołu widoku selektora tarcz.

AvailableInRetail

Określa, czy tarcza zegarka jest dostępna w trybie demonstracyjnym dla sprzedawców. Musi być wartością logiczną lub odniesieniem do wartości logicznej, np. @bool/watch_face_available_in_retail.

Wartość domyślna: false

MultipleInstancesAllowed

Określa, czy tarcza zegarka może mieć wiele ulubionych. Musi być wartością logiczną lub odniesieniem do wartości logicznej, np. @bool/watch_face_multiple_instances_allowed.

Wartość domyślna: false

Editable

Określa, czy można edytować tarczę, co oznacza, że ma ustawienie lub co najmniej 1 nienaprawiony widżet. Pozwala wyświetlać lub ukrywać przycisk Edytuj tarczy zegarka na liście ulubionych.

Wartość domyślna: false

Zadeklaruj nazwę tarczy zegarka

W pliku manifestu aplikacji (AndroidManifest.xml) ustaw atrybut android:label na nazwę tarczy zegarka:

<application android:label="@string/watch_face_name" >

Deklarowanie obsługi kształtów tarcz zegarka

W katalogu zasobów res/xml aplikacji zadeklaruj zestaw kształtów tarczy zegarka, które obsługujesz:

<WatchFaces>
    <!-- The default shape is "CIRCLE". -->
    <WatchFace shape="CIRCLE" width="300" height="300"
               file="@raw/watchface"/>
    <WatchFace shape="CIRCLE" width="450" height="450"
               file="@raw/watchface_large_circle"/>
    <WatchFace shape="RECTANGLE" width="380" height="400"
               file="@raw/watchface_rectangle"/>
</WatchFaces>

Deklarowanie szczegółów tarczy zegarka

W katalogu zasobów res/raw aplikacji utwórz pliki odpowiadające wartościom atrybutu file używanym podczas deklarowania obsługi kształtów tarcz zegarka. Tutaj ustawiasz wygląd i działanie tarczy w przypadku każdego jej kształtu.

W przypadku przykładu z tej strony nieprzetworzone pliki XML wyglądałyby tak:

  • res/raw/watchface.xml
  • res/raw/watchface_large_circle.xml
  • res/raw/watchface_rectangle.xml

Elementem głównym jest zawsze WatchFace:

<WatchFace width="450" height="450" shape="CIRCLE">
    <!-- Remainder of your Watch Face Format definition here. -->
    <!-- If this file defines a watch face for a circular device shape, place
         resources used in this file in the "/res/drawable-nodpi" directory. -->
    <!-- If this file defines a watch face for a rectangular or other
         non-circular shape, place resources ued in this file in the
         "/res/drawable-notround-nodpi" directory. -->
</WatchFace>

Identyfikuj wydawcę tarczy zegarka (opcjonalnie)

Opcjonalnie w pliku manifestu aplikacji zadeklaruj dowolny ciąg znaków, który może służyć do identyfikowania wydawcy tarczy zegarka, albo nazwę i wersję narzędzia:

<application ...>
    ...
    <property
        android:name="com.google.wear.watchface.format.publisher"
        android:value="{toolName}-{toolVersion}" />
</application>

Tworzenie pakietu aplikacji na tarczę zegarka

Aby utworzyć pakiet Android App Bundle zawierający tarczę zegarka, użyj bundletool. Dowiedz się więcej o tym, jak utworzyć aplikację za pomocą bundletool.

Zapoznaj się z przykładami na GitHubie, z którymi dowiesz się, jak przygotować pakiet aplikacji do publikacji, a także z narzędzi do weryfikacji, które pozwolą Ci sprawdzić jego poprawność przed przesłaniem do Google Play.