Kafelki nie są aplikacjami, dlatego są wdrażane i uruchamiane za pomocą innych mechanizmów.
Gdy na urządzeniu są włączone opcje programisty (na emulatorach te funkcje są
domyślnie włączone), dodatkowe funkcje obsługujące tworzenie kafelków stają się
dostępne do użycia w Android Studio i adb.
Wdrażanie kafelków
Aby wdrożyć kafelek, możesz zainstalować aplikację na urządzeniu fizycznym lub emulatorze za pomocą Android Studio, jak opisano w artykule Tworzenie i uruchamianie aplikacji. Następnie, wykonując te same czynności co zwykli użytkownicy, ręcznie dodaj kafelek do karuzeli kafelków.
Podczas aktywnego programowania może być łatwiej i szybciej używać funkcji „Wear OS Tile” konfiguracja uruchamiania i debugowania w Android Studio. Ta metoda automatycznie wdraża i aktywuje kafelek, co umożliwia natychmiastową interakcję bez dodatkowych czynności ręcznych.
Automatyczne tworzenie konfiguracji
Najłatwiejszym sposobem wdrożenia i uruchomienia kafelka jest użycie ikony „run service” na marginesie. Jeśli konfiguracja uruchomienia jeszcze nie istnieje, zostanie ona automatycznie utworzona. Więcej informacji znajdziesz w artykule Konfiguracje uruchamiania i debugowania Wear OS.
Ręczne tworzenie konfiguracji
Jeśli automatyczna konfiguracja nie działa lub chcesz mieć większą kontrolę nad wynikiem, postępuj zgodnie z tymi instrukcjami. Zrzuty ekranu pochodzą z Android Studio Meerkat (2024.3.1).
Na pasku tytułu wybierz opcję „⋮” („hamburger”).
Wybierz „Edytuj…”.
W wyświetlonym oknie kliknij „+”, aby dodać konfigurację.
Jako typ nowej konfiguracji wybierz „Wear OS Tile”.
Wpisz nazwę konfiguracji i wybierz odpowiednio moduł i kafelek.
Kliknij „OK”. Konfiguracja pojawi się na pasku tytułu. Kliknij przycisk „▷” („uruchom”), a kafelek zostanie wdrożony i aktywowany.
Podgląd kafelków w Android Studio
Od wersji Android Studio Koala Feature Drop możesz wyświetlać migawki kafelków aplikacji na Wear OS. Ten panel jest szczególnie przydatny, jeśli wygląd kafelka zmienia się w zależności od warunków, np. inna treść w zależności od rozmiaru ekranu urządzenia lub przerwa w połowie meczu.
Dodawanie zależności
Dodaj te zależności do pliku build.gradle.kts lub
build.gradle aplikacji:
dependencies {
implementation("androidx.wear.tiles:tiles-tooling-preview:1.6.0")
debugImplementation("androidx.wear.tiles:tiles-tooling:1.6.0")
implementation("androidx.wear:wear-tooling-preview:1.0.0")
}
Konfigurowanie podglądów kafelków
Aby zobaczyć podgląd wyglądu kafelka na ekranach Wear OS o różnych rozmiarach, dodaj adnotację @Preview i przekaż parametr device. Pamiętaj, że
ta @Preview adnotacja pochodzi z innego pakietu niż ten, którego używasz do
podglądów elementów kompozycyjnych.
@Preview(device = WearDevices.SMALL_ROUND) @Preview(device = WearDevices.LARGE_ROUND) fun tilePreview(context: Context) = TilePreviewData { request -> TilePreviewHelper.singleTimelineEntryTileBuilder( buildMyTileLayout(context, request.deviceConfiguration) ).build() }
Dodawanie i rejestrowanie zasobów
Jeśli kafelek używa zasobów Androida, musisz je zarejestrować w parametrze onTileResourceRequest elementu TilePreviewData, jak pokazano w tym fragmencie kodu:
@Preview(device = WearDevices.SMALL_ROUND) fun previewWithResources(context: Context) = TilePreviewData( onTileResourceRequest = { request -> Resources.Builder() .setVersion(RESOURCES_VERSION) .addIdToImageMapping( myImageId, getImageById(R.drawable.animated_walk) ) .build() }, onTileRequest = { request -> TilePreviewHelper.singleTimelineEntryTileBuilder( buildMyTileLayout(context, request.deviceConfiguration) ).build() } )
Wyświetlanie konkretnych wartości ze źródeł danych platformy
Jeśli kafelek używa danych platformy, takich jak tętno, kalorie, dystans i kroki, wyświetla wartości domyślne.
Aby wyświetlić konkretną wartość, ustaw parametr platformDataValues podczas tworzenia obiektu TilePreviewData, jak pokazano w tym fragmencie kodu:
@Preview(device = WearDevices.SMALL_ROUND) fun previewWithPlatformOverride(context: Context) = TilePreviewData( platformDataValues = PlatformDataValues.of( PlatformHealthSources.Keys.HEART_RATE_BPM, DynamicDataBuilders.DynamicDataValue.fromFloat(160f) ), onTileRequest = { request -> TilePreviewHelper.singleTimelineEntryTileBuilder( buildMyTileLayoutDynamic(context, request.deviceConfiguration) ).build() } )
Przekształcanie kafelków za pomocą adb
adb może być używane do programowego instalowania, usuwania i aktywowania kafelków
podczas tworzenia.
W tych poleceniach ComponentName to ciąg znaków składający się z nazwy pakietu i klasy w tym pakiecie, np. com.example.wear.tiles/com.example.wear.tiles.PreviewTileService.
add-tile
Dodaje kafelek udostępniany przez COMPONENT_NAME i zwraca indeks.
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation add-tile --ecn component [COMPONENT_NAME]
Przykładowe dane wyjściowe:
Broadcast completed: result=1, data="Index=[0]"
Jeśli kafelek jest już w karuzeli, zostanie usunięty i ponownie wstawiony w tym samym miejscu. W przeciwnym razie zostanie wstawiony w Index[0]. Jeśli karuzela jest pełna, ostatni kafelek zostanie usunięty, aby zrobić miejsce na nowy.
show-tile
Aktywuj kafelek o indeksie TILE_INDEX.
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SYSUI --es operation show-tile --ei index [TILE_INDEX]
Przykładowe dane wyjściowe:
Broadcast completed: result=1
remove-tile
Usuwa wszystkie instancje kafelków w karuzeli powiązane z COMPONENT_NAME.
adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation remove-tile --ecn component [COMPONENT_NAME]
Przykładowe dane wyjściowe:
result=1, data="Tile(s) removed."
Wartości zwracane
- result=0: żaden odbiorca transmisji nie odpowiedział na to polecenie, najprawdopodobniej dlatego, że wersja Wear OS jest zbyt stara lub proces debugowania nie jest uruchomiony.
- result=1: powodzenie.
- result>1: błąd.