我有以下代码来获取步数
@Override
public void onDataPoint(DataPoint dataPoint) {
for (final Field field : dataPoint.getDataType().getFields()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
steps = dataPoint.getValue(field).asInt();
Log.d(TAG, "Steps: " + steps);
}
});
}
}
我发现了什么:
我想知道计算步数时究竟是什么dataPoint.getValue(field).asInt()
?
答案 0 :(得分:0)
DataPoint的定义如下:
表示来自特定data source的数据类型流中的单个数据点。数据点包含每个字段的值,时间戳和可选的开始时间。每个属性的确切语义在特定数据类型的文档中指定,可以在DataType中的相应常量中找到。
数据点可以表示瞬时测量,读取或输入观察,以及一段时间内的平均值或聚合。检查数据类型文档以确定特定数据类型的情况。
DataPoints始终为每个数据类型字段包含一个值。最初,所有值都未设置。创建数据点后,应设置适当的值和时间戳。
公共值getValue(字段字段)
返回具有给定名称的字段的值持有者。此方法既可用于查询值,也可用于设置它。
创建自定义数据类型的数据点:
// Create a data point for a data source that provides
// data of type "com.app.custom_data_type" (created above)
DataPoint dataPoint = DataPoint.create(myDataSource);
// Set values for the data point
// This data type has two custom fields (int, float) and a common field
dataPoint.getValue(0).setInt(mField1IntValue);
dataPoint.getValue(1).setFloat(mField2FloatValue);
dataPoint.getValue(Field.FIELD_ACTIVITY).setInt(mActivityValue);
当您创建包含int
和float
字段的自定义数据类型时,您无法对这些字段使用DataPoint.setFloatValues()
和DataPoint.setIntValues()
方法。在这种情况下,获取数据点的组件并分别为每个组件分配值