Google erweitert die Android-API zur Aktivitätserkennung
Die Transition-API ermöglicht Entwicklern, das Starten oder Beenden von Aktivitäten wie Radfahren oder der Fortbewegung im Fahrzeug zu erkennen und passende Callbacks zum Verarbeiten zu definieren.
- Rainald Menge-Sonnentag
Das Android-Activity-Recognition-Team hat eine Transition-API vorgestellt, die ab sofort allen Entwicklern offensteht. Mit der API lassen sich Übergänge der Aktivität des Nutzers abfragen beziehungsweise entsprechende Callback-Funktionen definieren. Hinter den Kulissen ist sie bereits seit November 2017 aktiv und steuert die Nicht-Stören-Funktion beim Autofahren von Googles Pixel 2.
Darüber hinaus gibt es andere Anbieter, die bereits als Partner von Google die API verwenden, darunter Intuit für den Kilometerzähler in der App QuickBooks Self-Employed sowie der GPS-Tracker von Life 360. Letztere App verbraucht laut ihren Entwicklern vor allem weniger Akkuleistung und ist präziser, da sie die Position dann bestimmt, wenn die Nutzer eine Bewegung starten.
Blick unter die Haube
Um die Transition-API zu verwenden, müssen Entwickler zunächst ihrem Projekt eine Dependency für die API Google Location and Activity Recognition ab Version 12.0.0 hinzufügen und vom Nutzer die Erlaubnis der Aktivitätsabfrage einholen, indem sie der Manifest-Datei folgenden Eintrag hinzufügen:
<uses-permission
android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
Anschließend können sie eine Liste von ActivityTransition-Objekten nutzen, die jene Aktivitäten bestimmen, die die App verarbeitet. Ein ActivityTransitionRequest-Objekt spezifiziert die Art der Aktivität und des Übergangs und ein PendingIntent gibt den Callback innerhalb der App an, der die Benachrichtigung verarbeitet.
Derzeit existieren die Aktivitätsprofile IN_VEHICLE, ON_BICYCLE, RUNNING, STILL und WALKING. Alle lassen sich jeweils als Start (ACTIVITY_TRANSITION_ENTER) oder Ende (ACTIVITY_TRANSITION_EXIT) registrieren. So verwaltet folgender Code das Beenden einer gehenden Aktivität:
transitions.add(
new ActivityTransition.Builder()
.setActivityType(DetectedActivity.WALKING)
.setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_EXIT)
.build());
Weitere Unterscheidungen in Planung
Google will in den kommenden Monaten weitere Aktivitäten hinzufügen, mit denen sich beispielsweise unterscheiden lässt, ob ein Fahrzeug sich auf der Straße oder auf Schienen bewegt, um unterschiedlich auf Auto- und Eisenbahnfahrten zu reagieren.
Weitere Details lassen sich dem Blogbeitrag entnehmen. Die Dokumentation der Transition-API findet sich auf der Android-Developer-Site. (rme)