Wear OS automatycznie przechodzi w tryb oszczędzania energii w przypadku aktywnej aplikacji, gdy użytkownik nie jest dłużej używać zegarka. Jest to tzw. systemowy tryb nieaktywny. Jeśli użytkownik wejdzie w interakcję z ponownie w określonym przedziale czasu, Wear OS przenosi użytkownika z powrotem do aplikacji, którą przerwali.
w określonych przypadkach użycia, na przykład gdy użytkownik chce monitorować tętno i tempo w trakcie bieganie—ty może też kontrolować, co ma się wyświetlać w trybie nieaktywnym o niskim poborze energii. Uruchamianie aplikacji na Wear OS w trybie nieaktywnym i interaktywnym nazywamy aplikacjami zawsze włączonymi.
Stały widoczność aplikacji wpływa na żywotność baterii. tę funkcję.
Konfigurowanie projektu
Aby włączyć tę funkcję, wykonaj te czynności:
- Utwórz lub zaktualizuj projekt na podstawie konfiguracji w Utwórz i uruchomić stronę z aplikacjami 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ć funkcji
AmbientLifecycleObserver
, wykonaj te czynności:
-
Zaimplementuj
AmbientLifecycleObserver.AmbientLifecycleCallback
, jak w przykładzie poniżej. Na tym etapie metody są puste, ale w dalszej części przewodnika znajdziesz szczegółowe informacje o tym, jakie zmiany upewnij się, że tworzysz wizualizację, by przejść do trybu nieaktywnego i z niego wyjść.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 będzie używana w usłudzeonCreate()
lub w funkcji kompozycyjnej najwyższego poziomu, jeśli używasz funkcji Utwórz na Wear OS, aby pozwalają na włączenie trybu Ekran zawsze wł. przez cały cykl życia działania.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 jest zawsze włączona nie jest już wymagane. Możesz na przykład wywołać tę metodę w metodaonDestroy()
działania.
Zawsze włączone aplikacje mogą przenieść się w tle
Od Wear OS 5 system przenosi zawsze włączone aplikacje w tle po wyświetlają się w trybie nieaktywnym przez określony czas. Użytkownicy mogą skonfigurować limit czasu w ustawieniach systemowych.
Jeśli w aplikacji są zawsze włączone informacje o trwającym działaniu użytkownika, takim jak podczas odtwarzania muzyki lub podczas treningu. widoczne do momentu zakończenia zadania. Aby to zrobić, użyj interfejsu Ongoing Activity API. powiadomienie o trwającej aktywności powiązane z Twoją zawsze aktywną aktywnością.
Aby system mógł rozpoznać trwającą aktywność, trwający intencja dotyku powiadomienia musi wskazywać Twoją zawsze aktywną aktywność, jak widać w ten fragment kodu:
// Create a pending intent that point to your always-on activity
val touchIntent =
PendingIntent.getActivity(
context,
0,
Intent(context, MyAlwaysOnActivity::class.java),
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
)
val notificationBuilder =
NotificationCompat.Builder(this, CHANNEL_ID)
// ...
.setOngoing(true)
val ongoingActivity =
OngoingActivity.Builder(
applicationContext, NOTIFICATION_ID, notificationBuilder
)
// ...
.setTouchIntent(touchIntent)
.build()
ongoingActivity.apply(applicationContext)
notificationManager.notify(
NOTIFICATION_ID,
notificationBuilder.build()
)
Zmień wygląd w trybie nieaktywnym
Domyślnie, gdy ekran jest włączony,
gdy zegarek przejdzie w tryb nieaktywny. Możesz to zmienić
przez zastąpienie metod w argumencie
AmbientLifecycleCallback
Aby oszczędzać energię, wykonaj te czynności:
- Zmniejsz jasność ekranu, a większość ekranu pozostaw czarna. Rozważ wyświetlania tylko istotnych informacji w trybie nieaktywnym, gdy użytkownik przejdzie w tryb interaktywny.
- Możesz korygować wybrane treści, aby nie pojawiały się zbyt często. Na przykład pokaż minutniki do najbliższej minuty zamiast do najbliższej sekundy.
- W:
AmbientDetails
obiekt przekazany doonEnterAmbient()
:- Jeśli jest ustawiony
deviceHasLowBitAmbient
, wyłącz antyaliasing, jeśli to możliwe. - Jeśli ustawiono
burnInProtectionRequired
, przesuń wizualizację w inne miejsce okresowo i unikaj stałych białych obszarów.
- Jeśli jest ustawiony
Jeśli używasz funkcji Utwórz na Wear OS, zalecamy użycie tych metod wywołania zwrotnego aby zaktualizować stan, co umożliwi systemowi ponowne skomponowanie z odpowiednim interfejsem użytkownika.
Aby dowiedzieć się, jak można to osiągnąć, przeczytaj artykuł poświęcony tworzeniu wiadomości
Przykładowe ćwiczenie w GitHubie, które wykorzystuje AmbientAware
z biblioteki Horologist.