Zadbaj o widoczność aplikacji na Wear

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:

  1. Utwórz lub zaktualizuj projekt zgodnie z konfiguracjami na stronie Utwórz i uruchom aplikację do noszenia.
  2. 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:

  1. 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.
          }
        }
        
  2. Utwórz AmbientLifecycleObserver i zarejestruj obserwatora. Zwykle należy go użyć w funkcji onCreate() 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)
    
      // ...
    }
    
  3. 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 metodzie onDestroy() 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 do onEnterAmbient():
    • 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 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.