Die Google Fit APIs, einschließlich der Google Fit REST API, sind nach dem 30. Juni 2025 nicht mehr verfügbar. Seit dem 1. Mai 2024 können sich Entwickler nicht mehr für die Nutzung dieser APIs registrieren.
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
In diesem Beispiel wird gezeigt, wie Sie einen Fitness API-Client erstellen.
Erstellen Sie den API-Client wie folgt:
Erstellen Sie eine FitnessOptions-Instanz und deklarieren Sie dabei die
Datentypen und Zugriffstyp (Lesen und/oder Schreiben) der Anwendung
benötigt:
val fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.build()
Rufen Sie eine Instanz des Account-Objekts ab, um es mit der API zu verwenden:
val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
Prüfen Sie, ob der Nutzer zuvor den erforderlichen Datenzugriff gewährt hat und ob
nicht, initiieren Sie den Autorisierungsablauf:
if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
GoogleSignIn.requestPermissions(
this, // your activity
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE, // e.g. 1
account,
fitnessOptions)
} else {
accessGoogleFit()
}
Wenn der Autorisierungsvorgang erforderlich ist, verarbeiten Sie die Antwort des Nutzers:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (resultCode) {
Activity.RESULT_OK -> when (requestCode) {
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE -> accessGoogleFit()
else -> {
// Result wasn't from Google Fit
}
}
else -> {
// Permission not granted
}
}
}
Nachdem der Nutzer den Zugriff auf die angeforderten Daten autorisiert hat, erstellen Sie eine Fitness-App.
Client (z. B. ein HistoryClient zum Lesen und/oder Schreiben des Verlaufs der Fitnessdaten)
Daten) je nach Zweck und Anforderungen Ihrer App:
private fun accessGoogleFit() {
val end = LocalDateTime.now()
val start = end.minusYears(1)
val endSeconds = end.atZone(ZoneId.systemDefault()).toEpochSecond()
val startSeconds = start.atZone(ZoneId.systemDefault()).toEpochSecond()
val readRequest = DataReadRequest.Builder()
.aggregate(DataType.AGGREGATE_STEP_COUNT_DELTA)
.setTimeRange(startSeconds, endSeconds, TimeUnit.SECONDS)
.bucketByTime(1, TimeUnit.DAYS)
.build()
val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
Fitness.getHistoryClient(this, account)
.readData(readRequest)
.addOnSuccessListener({ response ->
// Use response data here
Log.i(TAG, "OnSuccess()")
})
.addOnFailureListener({ e -> Log.d(TAG, "OnFailure()", e) })
}