Daten aus Google Fit lesen und Werte schreiben
Über Googles Play-Services greifen Android-Apps auf Daten in Google Fit zu. Wir zeigen an einem Körperfett-Beispiel, wie einfach man Daten auswerten kann.
Mit einer Caliper-Zange bestimmen Sie Ihren Körperfettanteil. Man nutzt sie, indem man an verschiedenen Körperstellen Speckfalten zwischen zwei Finger klemmt und misst, wie dick die Falte ist. Die gemessenen Faltendicken muss man allerdings in komplizierte Formeln einsetzen, um den Körperfettanteil zu berechnen. Das wollten wir nicht per Hand ausrechnen und haben deswegen mit Kotlin eine Android-App programmiert. Die führt mit anschaulichen Bildern durch die Messung in mehreren Schritten und rechnet danach automatisch den Körperfettanteil aus.
Um einen Überblick zu bekommen, wie er sich mit der Zeit verändert, kommt Google Fit ins Spiel. Die Fitness-Datenbank speichert den Fettanteil im Datentyp DataType.TYPE_BODY_FAT_PERCENTAGE
, sodass die Daten nicht nur der eigenen Kotlin-App, sondern auch beliebigen anderen Apps mit Zugriff auf Google Fit offenstehen. Außerdem zeichnet unsere App ein schickes Diagramm mit allen Körperfettwerten aus Google Fit.
Entgegen der Codebeispiele in Googles Dokumentation muss die App keinerlei Berechtigungen (Permissions) anfordern. Sie greift nicht direkt aufs Internet zu, da sie die Play-Services nutzt. Die Play-Services nutzen selbst die Internet-Berechtigung, aber das AndroidManifest.xml der eigenen App muss das nicht erwähnen. Die Beispiele von Google erlauben sich auch den Zugriff auf den Standort, unsere App konnte sich aber auch ohne Zugriff auf diesen problemlos bei Google anmelden. Ähnlich verhält es sich mit android.permission.BODY_SENSORS
. Die Caliper-App gibt sich bei Google Fit zwar als Sensor aus, der Rohdaten produziert, dem Android-System muss man dafür aber keine Rechte abringen, weil sie nichts etwa per Bluetooth koppelt. Für einige andere Fit-Datentypen braucht man die Berechtigung aber.