Gdy użytkownik nie korzysta już z zegarka, Wear OS automatycznie włącza tryb oszczędzania energii w przypadku aktywnej aplikacji. Jest to tzw. systemowy tryb nieaktywny. Jeśli użytkownik ponownie wejdzie w interakcję z zegarkiem w określonym czasie, Wear OS skieruje go z powrotem do aplikacji, gdzie został wstrzymany.
W określonych przypadkach, np. gdy użytkownik chce sprawdzić tętno i tempo podczas biegu, możesz też określić, co ma się wyświetlać w trybie nieaktywnym z małym zużyciem energii. Aplikacje na Wear OS, które działają zarówno w trybie nieaktywnym, jak i interaktywnym, są nazywane aplikacjami zawsze włączonymi.
Ciągłe wyświetlanie informacji o aplikacji ma wpływ na żywotność baterii. Pamiętaj o tym, dodając tę funkcję do aplikacji.
Konfigurowanie projektu
Aby włączyć obsługę trybu nieaktywnego, wykonaj te czynności:
- Utwórz lub zaktualizuj projekt zgodnie z konfiguracjami na stronie Utwórz i uruchom aplikację do noszenia.
- Dodaj uprawnienie
WAKE_LOCK
do pliku manifestu Androida:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Włącz tryb stały
Aby użyć klasy
AmbientLifecycleObserver
, wykonaj te czynności:
-
Zaimplementuj interfejs
AmbientLifecycleObserver.AmbientLifecycleCallback
, tak jak w przykładzie poniżej. Na tym etapie metody są puste, ale w dalszej części przewodnika dowiesz się, jakie zmiany należy wprowadzić w wizualizacji, aby włączyć i wyłączyć tryb nieaktywny.Kotlin
val ambientCallback = object : AmbientLifecycleObserver.AmbientLifecycleCallback { override fun onEnterAmbient(ambientDetails: AmbientLifecycleObserver.AmbientDetails) { // ... Called when moving from interactive mode into ambient mode. } override fun onExitAmbient() { // ... Called when leaving ambient mode, back into interactive mode. } override fun onUpdateAmbient() { // ... Called by the system in order to allow the app to periodically // update the display while in ambient mode. Typically the system will // call this every 60 seconds. } }
-
Utwórz
AmbientLifecycleObserver
i zarejestruj obserwatora. Zwykle należy go użyć w funkcjionCreate()
lub funkcji kompozycyjnej najwyższego poziomu, jeśli korzystasz z opcji Utwórz w Wear OS, aby umożliwić włączenie zachowania zawsze aktywnego przez cały cykl życia aktywności.Kotlin
private val ambientObserver = AmbientLifecycleObserver(activity, callback) override fun onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState) lifecycle.addObserver(observer) // ... }
- Usuń obserwatora, wywołując funkcję
removeObserver()
, gdy zachowanie zawsze włączone nie jest już wymagane. Możesz na przykład wywołać tę metodę w metodzieonDestroy()
swojej aktywności.
Zmień wygląd w trybie nieaktywnym
Domyślnie podczas korzystania z trybu nieaktywnego ekran nie zmienia się po przejściu w tryb nieaktywny. Możesz zmodyfikować to działanie, zastępując metody w AmbientLifecycleCallback
.
Aby oszczędzać energię, wykonaj te czynności:
- Rozjaśnia mniej pikseli i pozostawia czarny ekran w większości. Rozważ wyświetlanie w trybie nieaktywnym tylko istotnych informacji i podaj więcej szczegółów, gdy użytkownik włączy tryb interaktywny.
- Dostosuj treść, aby rzadziej aktualizować treści. Na przykład wyświetlaj minutniki z najbliższą minutą, a nie z najbliższą sekundą.
- W obiekcie
AmbientDetails
przekazanym doonEnterAmbient()
:- Jeśli ustawiona jest zasada
deviceHasLowBitAmbient
, w miarę możliwości wyłącz antyaliasing. - Jeśli jest ustawiony
burnInProtectionRequired
, przesuwaj wizualizację okresowo i unikaj jednolitych białych obszarów.
- Jeśli ustawiona jest zasada
Jeśli korzystasz z opcji tworzenia na Wear OS, zalecamy korzystanie z tych metod wywołania zwrotnego, aby zaktualizować stan. Dzięki temu system będzie mógł odpowiednio utworzyć interfejs.
Przykład tego, jak można to osiągnąć, znajdziesz w
przykładzie ćwiczenia opartym na tworzeniu wiadomości na GitHubie, w którym wykorzystywany jest element kompozycyjny AmbientAware
z biblioteki Horologist.