簡體   English   中英

解釋在google fit中onDataPoint中獲得的步長值

[英]Interpretation of step value obtained in onDataPoint in google fit

我有以下代碼來計算步數

@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); 
            }
        });
    }
}

我發現了什么:

  1. 此步驟值不是當前步驟的值。 當日期更改時,步驟值不會重置為0並繼續遞增。
  2. 它不是所有先前步驟的總和,因為我的累計步驟接近51,000,而目前它顯示在2000左右。
  3. 每次運行代碼時,步驟值都不會重置為0,因此它會接收一些過去的值。
  4. 如果我卸載並重新安裝該應用程序,它仍然從2000開始。

我想在計算步驟時知道dataPoint.getValue(field).asInt()究竟是什么?

DataPoint定義如下:

  • 表示來自特定數據源的數據類型流中的單個數據點。 數據點包含每個字段的值,時間戳和可選的開始時間。 每個屬性的確切語義在特定數據類型的文檔中指定,可以在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);

創建包含intfloat字段的自定義數據類型時,不能對這些字段使用DataPoint.setFloatValues()DataPoint.setIntValues()方法。 在這種情況下,獲取數據點的組件並分別為每個組件分配值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM