Z tego przewodnika dowiesz się, jak utworzyć podstawową aplikację mobilną licznika kroków, stanowi wspólną podstawę wielu Aplikacje do fitnessu.
Ten przepływ pracy integruje te interfejsy API:
- SensorManager do pobierania danych dotyczących kroków z urządzenia mobilnego.
- Pomieszczenie na lokalne przechowywanie danych.
- Health Connect służy do przechowywania i udostępniania danych o zdrowiu i aktywności fizycznej na urządzeniu.
Więcej informacji o odczytywaniu danych i wymaganych narzędziach znajdziesz w sekcji Korzystanie z: Menedżera czujników Androida do śledzenia kroków na urządzeniu mobilnym.
Jeśli nie masz jeszcze skonfigurowanego środowiska programistycznego do korzystania z Health Connect, postępuj zgodnie z tymi wskazówkami pierwsze kroki kroków.
Poproś o uprawnienia na urządzeniu przenośnym
Przed uzyskaniem danych dotyczących ćwiczeń musisz poprosić o odpowiednie uprawnień.
Zalecamy, aby prosić o przyznanie uprawnień tylko w przypadku, gdy są potrzebne wymagaj każdego uprawnienia w kontekście, zamiast prosić o wszystkie uprawnień jednocześnie, gdy użytkownik uruchomi aplikację.
Czujnik licznika kroków, z którego korzysta wiele aplikacji do ćwiczeń, wykorzystuje
Uprawnienia: ACTIVITY_RECOGNITION
. Dodaj to uprawnienie w pliku AndroidManifest.xml.
plik:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
</manifest>
Aby w czasie działania poprosić o uprawnienie ACTIVITY_RECOGNITION
, zapoznaj się z
dokumentację prośby o uprawnienia.
Musisz też zadeklarować FOREGROUND_SERVICE
w pliku manifestu. Ponieważ Ty
proszą o uprawnienie ACTIVITY_RECOGNITION
, zadeklaruj
FOREGROUND_SERVICE_TYPE_HEALTH
:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_HEALTH"/>
Odwiedź Usługi działające na pierwszym planie. aby dowiedzieć się więcej o usługach i typach usług na pierwszym planie.
Zarządzanie stanem interfejsu za pomocą modelu widoku danych
Aby prawidłowo zarządzać stanem interfejsu użytkownika, użyj ViewModel. Jetpack Compose i ViewModels umożliwiają bardziej szczegółowe przyjrzenie się tej procesu tworzenia kampanii.
Używaj też warstw interfejsu użytkownika, które są kluczowym elementem tworzenia UI za pomocą Compose. i pozwala stosować sprawdzone metody dotyczące architektury, Jednokierunkowy przepływ danych. Aby dowiedzieć się więcej o nakładaniu warstw interfejsu użytkownika, zapoznaj się z artykułem Dokumentacja warstwy interfejsu
W tej przykładowej aplikacji interfejs użytkownika ma 3 podstawowe stany:
- Wczytywanie: pokazuje obracające się okrąg.
- Treść: pokazuje informacje o liczbie kroków na dziś.
- Błąd:pokazuje komunikat, gdy coś poszło nie tak.
ViewModel
ujawnia te stany jako Flow
Kotlin. Użyj zapleczonej klasy do:
zawierają klasy i obiekty, które reprezentują możliwe stany:
class TodayScreenViewModel(...) {
val currentScreenState: MutableStateFlow<TodayScreenState> = MutableStateFlow(Loading)
[...]
}
sealed class TodayScreenState {
data object Loading : TodayScreenState()
data class Content(val steps: Long, val dailyGoal: Long) : TodayScreenState()
data object Error: TodayScreenState()
}
Interfejs tej funkcji zapisuje ten element Flow
jako element State
w narzędziu do tworzenia wiadomości i działa na nim:
val state: TodayScreenState = todayScreenViewModel.currentScreenState.collectAsState().value