Client for creating and managing
user activity in Google Fit. Sessions are a way of storing user-visible groups of related
stream data in a useful and shareable manner, and allow for easy querying of the data in a
detailed or aggregated fashion.
stopSession(String) methods mark the time range of the session. Data inserted
during the period where the session is in progress will be associated with that Session once
it is stopped.
Another way of adding sessions is with
insertSession(SessionInsertRequest). This is designed for bulk insertion when
importing a user's historic data into Google Fit; for live sessions use the previous Client.
All data in Google Fit that falls within the time range of an inserted session will be
implicitly associated with that session.
Once a session has been saved, it can be retrieved using
Clients can register to be notified of sessions, and remove existing registrations, using
unregisterForSessions(PendingIntent). Notifications will be sent for sessions when
they are started and stopped.
Deleting sessions is handled like any other data deletion, via
The Sessions Client should be accessed via the
Session session = new Session.Builder() .setName(sessionName) .setIdentifier(identifier) .setDescription(description) .setStartTime(startTime.getMillis(), TimeUnit.MILLISECONDS) .build(); Task<Void> response = Fitness.getSessionsClient(this, googleSignInAccount).startSession(session);
Public Method Summary
Inherited Method Summary
public Task<Void> insertSession (SessionInsertRequest request)
and corresponding data into the user's Google Fit store on behalf of the current
application. Useful for bulk upload of a previously recorded session.
public Task<SessionReadResponse> readSession (SessionReadRequest request)
Reads data from the user's Google Fit store of the specific type(s) and for the specific session(s) selected from the request parameters.
Note that, by default, only sessions from your app are returned. To read sessions
from other apps,
SessionReadRequest.Builder.readSessionsFromAllApps() can be used.
|request||A built request specifying the specific session, time interval and/or data type for the query|
taskcontaining the requested session and data. Includes a data set for each session and data type that was returned.
public Task<Void> registerForSessions (PendingIntent intent)
Registers for notifications of session start and end events using a PendingIntent.
Notifications will be sent only for sessions that are explicitly started by an app via
The application specifies a PendingIntent callback (typically an IntentService)
which will be called when sessions are started or stopped. When the PendingIntent is
called, the application can use
Session.extract(android.content.Intent) to extract the Session from the
intent. In addition, the following Intent extras can be used:
Fitness.EXTRA_START_TIMEset to the Session's start time.
Fitness.EXTRA_END_TIMEoptionally set to the Session's end time if the session has ended.
Finally, the Intent's type will be set to
FitnessActivities.MIME_TYPE_PREFIX followed by the name of the activity
associated with this session, and can be computed by
Any previously registrations that have the same PendingIntent (as defined by
PendingIntent.equals(Object)) will be replaced by this registration.
|intent||A callback intent to be sent every time a session is started or stopped.|
Stops active sessions for the current application. The active sessions to be stopped are chosen as per the specifications in the input request.
|identifier||The identifier of the session to stop. If
taskcontaining the list of sessions that were stopped.
public Task<Void> unregisterForSessions (PendingIntent intent)
Unregisters from session start and end notifications using a
|intent||The PendingIntent that was used in the