java.lang.Object | |
↳ | com.google.android.gms.fitness.data.DataType |
The data type defines the schema for a stream of data being collected by, inserted into, or queried from Google Fit. The data type defines only the representation and format of the data, and not how it's being collected, the sensor being used, or the parameters of the collection.
The same underlying concept may be represented by different data types, depending on how data is
represented. For example, the com.google.step_count.delta
data type represents step
count data as delta (new steps) between different readings, while the
com.google.step_count.cumulative
data type represents step count data as a sum since the
start of the count. The platform has built-in support for converting between compatible data
types.
A data type contains one or more fields. In case of multi-dimensional data (such as location with latitude, longitude, and accuracy) each field represents one dimension. Each data type field has a unique name which identifies it. The field also defines the format of the data (int, float, etc.).
The data types in the com.google
namespace are shared with any app with the user
consent. These are fixed and can only be updated in new releases of the platform.
This class contains constants representing each of the com.google
data types,
each prefixed with TYPE_
. Custom data types can be accessed via the ConfigApi
.
Certain data types can represent aggregates, and can be computed as part of read requests by
calling aggregate(DataType, DataType)
. This class contains
constants for all the valid aggregates, each prefixed with AGGREGATE_
. In addition,
AGGREGATE_INPUT_TYPES
contains all valid input types to aggregation,
and the aggregates for each input type can be queried via
getAggregatesForInput(DataType)
.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | MIME_TYPE_PREFIX | The common prefix for data type MIME types, for use in intents. |
[Expand]
Inherited Constants | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
From interface
android.os.Parcelable
|
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
AGGREGATE_ACTIVITY_SUMMARY |
In the com.google.activity.summary data type, each data point represents a summary
of all activity segments of a particular activity type over a time interval.
|
||||||||||
AGGREGATE_BASAL_METABOLIC_RATE_SUMMARY |
In the com.google.bmr.summary data type, each data point represents the
average, maximum and minimum basal metabolic rate, in kcal per day, over the time interval of
the data point.
|
||||||||||
AGGREGATE_BODY_FAT_PERCENTAGE_SUMMARY |
In the com.google.body.fat_percentage.summary data type, each data point represents
the average, maximum and minimum percentage over the time interval of the data point.
|
||||||||||
AGGREGATE_CALORIES_CONSUMED |
This field is deprecated.
Use AGGREGATE_NUTRITION_SUMMARY instead, which contains calories as
well as other nutrients. This data type will be removed in a future release.
|
||||||||||
AGGREGATE_CALORIES_EXPENDED | Aggregate calories expended,in kcal, during a time interval. | ||||||||||
AGGREGATE_DISTANCE_DELTA | Aggregate distance, in meters, during a time interval. | ||||||||||
AGGREGATE_HEART_RATE_SUMMARY |
In the com.google.heart_rate.summary data type, each data point represents
average, maximum and minimum beats per minute over the time interval of the data point.
|
||||||||||
AGGREGATE_INPUT_TYPES | List of data types that are supported as input data types for aggregation. | ||||||||||
AGGREGATE_LOCATION_BOUNDING_BOX |
In the com.google.location.bounding_box data type, a data point represents the
bounding box computed over user's location data points over a time interval.
|
||||||||||
AGGREGATE_NUTRITION_SUMMARY |
In the com.google.nutrition.summary data type, each data point represents the sum of
all nutrition entries over the time interval of the data point.
|
||||||||||
AGGREGATE_POWER_SUMMARY |
In the com.google.power.summary data type, each data point represents
average, maximum and minimum watts over the time interval of the data point.
|
||||||||||
AGGREGATE_SPEED_SUMMARY |
In the com.google.speed.summary data type, each data point represents the
average, maximum and minimum speed over ground, in meters/second, over the time interval of
the data point.
|
||||||||||
AGGREGATE_STEP_COUNT_DELTA | Aggregate number of steps during a time interval. | ||||||||||
AGGREGATE_WEIGHT_SUMMARY |
In the com.google.weight.summary data type, each data point represents the
average, maximum and minimum weight, in kilograms, over the time interval of
the data point.
|
||||||||||
TYPE_ACTIVITY_SAMPLE |
In the com.google.activity.sample data type, each data point represents an
instantaneous sample of the current activity.
|
||||||||||
TYPE_ACTIVITY_SEGMENT |
In the com.google.activity.segment data type, each data point represents a continuous
time interval with a single activity value.
|
||||||||||
TYPE_BASAL_METABOLIC_RATE |
In the com.google.calories.bmr data type, each data point represents the basal
metabolic rate of energy expenditure at rest of the user at the time of the reading, in kcal
per day.
|
||||||||||
TYPE_BODY_FAT_PERCENTAGE |
In the com.google.body.fat.percentage data type, each data point represents a
measurement of the total fat mass in a person's body as a percentage of the total body mass.
|
||||||||||
TYPE_CALORIES_CONSUMED |
This field is deprecated.
Use TYPE_NUTRITION instead which holds calories as well as other
nutrients. This data type will be removed in a future release.
|
||||||||||
TYPE_CALORIES_EXPENDED |
In the com.google.calories.expended data type, each data point represents the number
of calories expended, in kcal, over the time interval of the data point.
|
||||||||||
TYPE_CYCLING_PEDALING_CADENCE |
In the com.google.cycling,cadence data type, each data point represents an
instantaneous measurement of the pedaling rate in crank revolutions per minute.
|
||||||||||
TYPE_CYCLING_PEDALING_CUMULATIVE |
In the com.google.cycling.pedaling.cumulative data type, each data point represents
the number of rotations taken from the start of the count.
|
||||||||||
TYPE_CYCLING_WHEEL_REVOLUTION |
In the com.google.cycling.wheel_revolution.cumulative data type, each data point
represents the number of revolutions taken from the start of the count.
|
||||||||||
TYPE_CYCLING_WHEEL_RPM |
In the com.google.cycling.wheel.revolutions data type, each data point represents an
instantaneous measurement of the wheel in revolutions per minute.
|
||||||||||
TYPE_DISTANCE_DELTA |
In the com.google.distance.delta data type, each data point represents the distance
covered, in meters, since the last reading.
|
||||||||||
TYPE_HEART_RATE_BPM |
In the com.google.heart_rate.bpm data type, each data point represents an
instantaneous measurement of the heart rate in beats per minute.
|
||||||||||
TYPE_HEIGHT |
In the com.google.height data type, each data point represents the height of the
user at the time of the reading, in meters.
|
||||||||||
TYPE_LOCATION_SAMPLE |
In the com.google.location.sample data type, each data point represents the user's
location at a given instant.
|
||||||||||
TYPE_LOCATION_TRACK |
The com.google.location.track data type represents a location point that is part of a
track and which may have inexact timestamps.
|
||||||||||
TYPE_NUTRITION |
In the com.google.nutrition data type, each data point represents the value of
all nutrients consumed as part of a meal or a food item.
|
||||||||||
TYPE_POWER_SAMPLE |
In the com.google.power.sample data type, each data point represents an
instantaneous measurement of power in watts.
|
||||||||||
TYPE_SPEED |
In the com.google.speed data type, each data point represents the instantaneous
speed over ground, in meters/second.
|
||||||||||
TYPE_STEP_COUNT_CADENCE |
In the com.google.step_count.cadence data type, each data point represents an
instantaneous measurement of the cadence in steps per minute.
|
||||||||||
TYPE_STEP_COUNT_DELTA |
In the com.google.step_count.delta data type, each data point represents the number
of steps taken since the last reading.
|
||||||||||
TYPE_WEIGHT |
In the com.google.weight data type, each data point represents the weight of the
user at the time of the reading, in kilograms.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Returns a list of output aggregate data types for the specified
inputDataType .
| |||||||||||
Returns the ordered list of fields for the data type.
| |||||||||||
Returns the MIME type for a particular
DataType .
| |||||||||||
Returns the namespaced name which uniquely identifies this data type.
| |||||||||||
Return the index of a field
| |||||||||||
[Expand]
Inherited Methods | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
| |||||||||||||||||||||||||||||||||
From interface
android.os.Parcelable
|
The common prefix for data type MIME types, for use in intents. The MIME type for a particular data type will be this prefix followed by the data type name. Examples:
vnd.google.fitness.data_type/com.google.heart_rate.bpm vnd.google.fitness.data_type/com.google.activity.segment vnd.google.fitness.data_type/com.example.my_typeThe data type's name is returned by
getName()
. The full MIME type can be
computed by getMimeType(DataType)
.
In the com.google.activity.summary
data type, each data point represents a summary
of all activity segments of a particular activity type over a time interval. The data type
has three fields:
FitnessActivities
, as described in
FIELD_ACTIVITY
.
Because this is an aggregate data type, start and end times should be set.
In the com.google.bmr.summary
data type, each data point represents the
average, maximum and minimum basal metabolic rate, in kcal per day, over the time interval of
the data point.
Because this is an aggregate data type, the start and end times should be set.
In the com.google.body.fat_percentage.summary
data type, each data point represents
the average, maximum and minimum percentage over the time interval of the data point.
Because this is an aggregate data type, the start and end times should be set.
This field is deprecated.
Use AGGREGATE_NUTRITION_SUMMARY
instead, which contains calories as
well as other nutrients. This data type will be removed in a future release.
Aggregate calories consumed,in kcal, during a time interval. This data type is equivalent
to the one used for non-aggregated data. The full definition can be found at
TYPE_CALORIES_CONSUMED
.
Aggregate calories expended,in kcal, during a time interval. This data type is equivalent
to the one used for non-aggregated data. The full definition can be found at
TYPE_CALORIES_EXPENDED
.
Aggregate distance, in meters, during a time interval. This data type is equivalent to the
one used for non-aggregated data. The full definition can be found at
TYPE_DISTANCE_DELTA
.
In the com.google.heart_rate.summary
data type, each data point represents
average, maximum and minimum beats per minute over the time interval of the data point.
Because this is an aggregate data type, start and end times should be set.
List of data types that are supported as input data types for aggregation. These include:
activity.segment
body.fat.percentage
calories.expended
distance.delta
heart_rate.bpm
location.sample
nutrition
speed
step_count.delta
weight
com.google
namespace cannot be aggregated by
the platform.
In the com.google.location.bounding_box
data type, a data point represents the
bounding box computed over user's location data points over a time interval. Each bounding
box has four fields:
In the com.google.nutrition.summary
data type, each data point represents the sum of
all nutrition entries over the time interval of the data point.
In the nutrients field map, each value will represent the sum of the nutrient over all of the entries in the interval. If the nutrient was not present in any of the entries, it won't be present on the aggregate map either.
If all of the original entries are for the same meal, the meal_type
field will also
be set.
In the com.google.power.summary
data type, each data point represents
average, maximum and minimum watts over the time interval of the data point.
Because this is an aggregate data type, start and end times should be set.
In the com.google.speed.summary
data type, each data point represents the
average, maximum and minimum speed over ground, in meters/second, over the time interval of
the data point.
Because this is an aggregate data type, the start and end times should be set.
Aggregate number of steps during a time interval. This data type is equivalent to the
one used for non-aggregated data. The full definition can be found at
TYPE_STEP_COUNT_DELTA
.
In the com.google.weight.summary
data type, each data point represents the
average, maximum and minimum weight, in kilograms, over the time interval of
the data point.
Because this is an aggregate data type, the start and end times should be set.
In the com.google.activity.sample
data type, each data point represents an
instantaneous sample of the current activity. The data point has two fields, the first one
representing the activity (as described in
FIELD_ACTIVITY
),
and the second representing the confidence in the sample, specified as a float between
0.0 and 100.0. If the confidence is unknown or not calculated, a negative value can be used.
Because the samples are instantaneous, start time has no meaning and should be left unset.
It's possible that more than one activity is detected at the same time with different confidence values. This can be represented as multiple data points with the same timestamp but different field values.
In the com.google.activity.segment
data type, each data point represents a continuous
time interval with a single activity value. Activity values are described in
FIELD_ACTIVITY
.
The start time of the data point must always be present as it represents the start of the activity, with the timestamp representing the activity's end time. Data point time intervals should be non-overlapping, although they do not need to be contiguous. In case when two activities happen at the same time, the most significant one should be used.
In the com.google.calories.bmr
data type, each data point represents the basal
metabolic rate of energy expenditure at rest of the user at the time of the reading, in kcal
per day.
Because the recorded BMR is instantaneous, the start time should not be set.
In the com.google.body.fat.percentage
data type, each data point represents a
measurement of the total fat mass in a person's body as a percentage of the total body mass.
Since this is an instantaneous measurement, start time should not be set.
This field is deprecated.
Use TYPE_NUTRITION
instead which holds calories as well as other
nutrients. This data type will be removed in a future release.
In the com.google.calories.consumed
data type, each data point represents the number
of calories consumed, in kcal, over the time interval of the data point. The field value
is stored as a float.
Start and end times should be set to denote the duration over which the calories were consumed.
In the com.google.calories.expended
data type, each data point represents the number
of calories expended, in kcal, over the time interval of the data point. The field value
is stored as a float.
Start and end times should be set to denote the duration over which the calories were expended.
In the com.google.cycling,cadence
data type, each data point represents an
instantaneous measurement of the pedaling rate in crank revolutions per minute.
Start time should be left unset. Different data sources will need to monitor the rotations of the crank for different amounts of time before calculating the instantaneous RPM. This should be indicated as part of the data source and not the data point.
In the com.google.cycling.pedaling.cumulative
data type, each data point represents
the number of rotations taken from the start of the count. When using this
data type, each revolution can be reported multiple times, as the values of each data point
are monotonically increasing. To calculate the number of revolutions during an interval, the
value at the end of the interval should be subtracted from the value at the beginning.
Note that the count may reset to zero at different times depending on the data source. When available, the data source should indicate the beginning of the count by setting the start time of the data point to the time of the start of the count. Alternatively, a data point with a value of zero can be used to indicate the resetting of the count. If neither of these is available, the count resetting can be inferred in a best-effort basis by detecting decreases in the total value.
In the com.google.cycling.wheel_revolution.cumulative
data type, each data point
represents the number of revolutions taken from the start of the count.
When using this data type, each revolution can be reported multiple times, as the values of
each data point are monotonically increasing. To calculate the number of revolutions during
an interval, the value at the end of the interval should be subtracted from the value at the
beginning.
Note that the count may reset to zero at different times depending on the data source. When available, the data source should indicate the beginning of the count by setting the start time of the data point to the time of the start of the count. Alternatively, a data point with a value of zero can be used to indicate the resetting of the count. If neither of these is available, the count resetting can be inferred in a best-effort basis by detecting decreases in the total value.
In the com.google.cycling.wheel.revolutions
data type, each data point represents an
instantaneous measurement of the wheel in revolutions per minute.
Start time should be left unset. Different data sources will need to monitor the RPMs for different amounts of time before calculating the instantaneous RPM. This should be indicated as part of the data source and not the data point.
In the com.google.distance.delta
data type, each data point represents the distance
covered, in meters, since the last reading. The total distance over an
interval can be calculated by adding together all the values during the interval.
The start time of each data point should represent the start of the interval in which the distance was covered. The start time must be equal to or greater than the end time of the previous data point.
In the com.google.heart_rate.bpm
data type, each data point represents an
instantaneous measurement of the heart rate in beats per minute.
Start time should be left unset. Different data sources will need to monitor the heart's beat rate for different amounts of time before calculating the instantaneous heart rate. This should be indicated as part of the data source and not the data point.
In the com.google.height
data type, each data point represents the height of the
user at the time of the reading, in meters.
Because the recorded height is instantaneous, the start time should not be set.
In the com.google.location.sample
data type, each data point represents the user's
location at a given instant. The location data point has four fields:
getAccuracy()
for more details.
accuracy
). Most mobile devices produce measurements
that are up to 25 meters away from the correct altitude, so care must be taken to average
several results for increased accuracy or use another source for elevation information.
If altitude could not be determined for this location sample, this field is not set.
The com.google.location.track
data type represents a location point that is part of a
track and which may have inexact timestamps.
Its fields are the same as location.sample. The
difference between the two data types is that, while location.sample
data points
have an exact timestamp, location.track
data points have an inexact time interval.
The start time will represent the earliest time where the user may been at the
location, and the end time will represent the latest time. Start time should always be
set, even if it's the same as end time.
One use case of location.track
is capturing the path of a user during an activity
when the track for the path is known, but the exact time at each coordinate isn't.
In the com.google.nutrition
data type, each data point represents the value of
all nutrients consumed as part of a meal or a food item.
The data point contains several fields. The nutrients field and either the meal type and/or the food item field are required.
nutrients
contains all of the nutrient data for the entry
meal_type
lists the type of meal, if known
food_item
lists the particular food item for the entry, if known
In case the meal time is known, it should be reflected in the timestamps. Otherwise, start and end times should be set to the range in which the meal occurred.
The meal_type
field accepts the following values, which are defined as constants in
Field
:
The nutrients
field is a map where the key holds the type of nutrient and the
value holds the amount of the nutrient for the entry. Key values are represented by the
NUTRIENT_XXX
constants in Field
. In
case the amount of the nutrient for the entry is not known, no value for that nutrient should
be added to the map. You may optionally use a value of zero when it is known that the
nutrient is not present in the entry. Multiple nutrients can be added by calling
setKeyValue(String, float)
repeatedly.
Here's an example of creating a DataPoint to represent the user eating a banana:
DataSource nutritionSource = new DataSource.Builder() .setDataType(TYPE_NUTRITION) ... .build(); DataPoint banana = DataPoint.create(nutritionSource); banana.setTimestamp(now.getMillis(), MILLISECONDS); banana.getValue(FIELD_FOOD_ITEM).setString("banana"); banana.getValue(FIELD_MEAL_TYPE).setInt(MEAL_TYPE_SNACK); banana.getValue(FIELD_NUTRIENTS).setKeyValue(NUTRIENT_TOTAL_FAT, 0.4f); banana.getValue(FIELD_NUTRIENTS).setKeyValue(NUTRIENT_SODIUM, 1f); banana.getValue(FIELD_NUTRIENTS).setKeyValue(NUTRIENT_POTASSIUM, 422f);
In the com.google.power.sample
data type, each data point represents an
instantaneous measurement of power in watts. The field value
is stored as a float.
Because the recorded power is instantaneous, the start time should not be set.
In the com.google.speed
data type, each data point represents the instantaneous
speed over ground, in meters/second. The value represents the scalar magnitude of the speed,
so negative values should not occur.
Because the recorded speed is instantaneous, the start time should not be set.
In the com.google.step_count.cadence
data type, each data point represents an
instantaneous measurement of the cadence in steps per minute.
Both feet are used for calculating cadence, so if a sensor only measures one foot the value measurement is doubled.
Start time should be left unset. Different data sources will need to monitor the rotations of the crank for different amounts of time before calculating the instantaneous RPM. This should be indicated as part of the data source and not the data point.
In the com.google.step_count.delta
data type, each data point represents the number
of steps taken since the last reading. When using this data type, each
step is only ever reported once, in the reading immediately succeeding the step. By adding
all of the values together for a period of time, the total number of steps during that period
can be computed.
As an example, if a user walked a total of 5 steps, with 3 different readings, the values for each reading might be [1, 2, 2].
The start time of each data point should represent the start of the interval in which steps were taken. The start time must be equal to or greater than the end time of the previous data point.
In the com.google.weight
data type, each data point represents the weight of the
user at the time of the reading, in kilograms.
Because the recorded weight is instantaneous, the start time should not be set.
Returns a list of output aggregate data types for the specified inputDataType
.
Returns the namespaced name which uniquely identifies this data type.