工作階段

使用者可以透過「工作階段」快速輕鬆地查看所有主要活動的清單。這些資料會顯示在 Google Fit 應用程式的「日記」頁面。舉例來說,呼吸練習、散步、跑步或睡眠都算是活動。

「時段」會將活動期間收集的資料集歸類為特定時間範圍。舉例來說,如果使用者追蹤自己何時開始和結束 3 公里跑步,系統就會建立工作階段,並將該時間範圍內的所有健身資料 (例如步數、速度、距離) 與該工作階段建立關聯。

工作階段本身不含活動詳細資料,這項資訊位於資料集中。工作階段具有下列屬性:

  • 描述性名稱 (例如「晨跑」)
  • 說明資訊
  • 專屬 ID
  • 擷取的活動類型 (例如跑步)

使用工作階段的好處

  • 對使用者有幫助:工作階段可協助使用者以有意義的方式整理活動記錄和訓練。他們可以在 Google Fit 應用程式的「日記」頁面中查看當天的所有活動。
  • 一致的使用者體驗:如果應用程式或配對裝置允許活動追蹤 (使用者可以開始及停止活動),為這些運動建立工作階段可讓使用者在兩個應用程式中查看活動。
  • 更完整的資料:Google Fit 也會合併多個來源的資料,以補充及豐富你的運動資訊。讓使用者更全面瞭解自己的活動。
  • 善用 Google Fit 平台:如果使用者未追蹤活動,或您的應用程式不支援追蹤功能,您仍可在 Google Fit 中讀取訓練記錄。您可以查詢健身資料儲存區的詳細或匯總資料,並找出可用的訓練課程,不必自行實作結構定義和儲存空間。
  • 提升使用者參與度:您可以向使用者顯示可用的工作階段,以及建立這些工作階段的應用程式。以這種方式與其他健身應用程式互動,可望提升使用者參與度。

取得工作階段的使用者授權

如要讀取或寫入工作階段,應用程式必須取得使用者授權。存取工作階段時,使用的授權範圍與資料類型相同,您應按照下列方式要求:

Android

使用 FitnessOptions 中的適當方法,指定應用程式需要存取的工作階段類型。舉例來說,如要讀取跑步相關的訓練記錄,可以選擇:

    val fitnessOptions = FitnessOptions.builder()
        .accessActivitySessions(FitnessOptions.ACCESS_READ)
        .addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
        .addDataType(DataType.TYPE_SPEED, FitnessOptions.ACCESS_READ)
        .addDataType(DataType.TYPE_LOCATION_SAMPLE, FitnessOptions.ACCESS_READ)
        .build()

這個範例指定應用程式要存取活動工作階段中繼資料,並指定要在這些工作階段中讀取的資料類型;本範例使用心率、速度和位置資料類型。

REST

要求範圍如下:

  • 包含睡眠活動類型的工作階段:
    • https://www.googleapis.com/auth/fitness.sleep.read
    • https://www.googleapis.com/auth/fitness.sleep.write
  • 所有其他工作階段:
    • https://www.googleapis.com/auth/fitness.activity.read
    • https://www.googleapis.com/auth/fitness.activity.write

使用工作階段

Android

您可以使用 Sessions API 執行下列操作:

  • 即時建立工作階段
  • 健身商店中插入訓練課程
  • 插入活動片段,支援在運動期間暫停
  • 讀取工作階段和相關聯的資料集
  • 啟動另一個應用程式,顯示該應用程式建立的工作階段資訊
  • 在其他應用程式啟動工作階段時接收意圖

REST

您可以使用 Sessions API 執行下列操作:

  • 即時建立工作階段
  • 健身商店中插入訓練課程
  • 插入活動片段,支援在運動期間暫停
  • 讀取工作階段和相關聯的資料集

資料集和區隔如何與工作階段互動

在 Google Fit 中:

  • 資料集代表特定資料來源特定時間範圍內的一組資料點。資料集可自行插入。但如果您要建立工作階段,可能一併建立工作階段及其資料集會比較輕鬆。
  • 區隔會根據使用者在工作階段中執行的確切活動,將工作階段中的資料集分組。舉例來說,如果使用者追蹤 30 分鐘的跑步活動 (即工作階段),但期間有短暫步行,這項活動可能會分成多個區段。系統會記錄跑步的區段,然後是步行休息,接著再次跑步。
圖 1:不同應用程式將訓練記錄和資料集新增至「健身資料儲存庫」。

圖 1 顯示健身資料商店中的時間間隔,應用程式 A、B 和 C 在這段期間插入了一些資料集和工作階段:

  • 應用程式 A 插入資料集 A1 和 A2,以及工作階段 1,並獨立插入 A3,不與任何工作階段相關聯。
  • 應用程式 B 插入資料集 B1 和 B2,以及工作階段 2。
  • 應用程式 C 插入資料集 C1,與任何工作階段無關。

健身資料儲存庫讀取運動記錄資料時,系統會自動將運動記錄時間間隔內的所有健身資料與該運動記錄建立關聯,即使您是在建立運動記錄後插入資料,或是在系統被動追蹤資料後建立運動記錄,也不例外。舉例來說,查詢工作階段 1 的健身資料會傳回:

  • 資料集 A1
  • 資料集 A2
  • 資料集 A3 中 t1 和 t2 之間的部分
  • 資料集 C1 在 t1 和 t2 之間的部分

您可以判斷每個工作階段和資料集是由哪個應用程式插入。

建立工作階段

建立工作階段的方式如下:

  • 應用程式可以在下列任一情況下主動建立工作階段:
    • 使用者在裝置上主動追蹤活動時 (僅限 Android),即時
    • 手動插入
  • 使用者在 Google Fit 應用程式中手動新增運動或活動。

建立工作階段的時機

你要新增睡眠資料嗎?

  • - 建立課程,然後手動插入健身商店。例如插入睡眠時段。這是因為使用睡眠追蹤應用程式或裝置的使用者,不會與裝置互動來開始和停止睡眠活動 (這類活動是透過被動方式追蹤)。
  • - 您的應用程式是否允許使用者開始及停止活動?
    • - 不要建立工作階段。請只新增應用程式中的資料集。
    • - 使用 Android API,在使用者追蹤活動時即時建立工作階段,或手動建立工作階段。使用 REST API 建立工作階段,並手動插入健身商店
    • 應用程式是否能以更詳細的層級偵測使用者進行的不同活動 (例如步行與跑步)?
      • - 新增區隔。
      • - 只能新增資料集。暫時忽略區段,讓 Google Fit 被動建立這些區段。

朗讀工作階段

應用程式可以透過下列幾種方式讀取工作階段:

  • 尋找由下列項目建立/插入的特定工作階段:
    • 名稱或
    • ID
  • 依時間範圍找出系統建立/插入的所有工作階段
  • 依時間範圍查看所有應用程式 (包括 Google Fit) 建立的所有可用活動

瞭解哪些來源建立了工作階段

您可以向使用者顯示每個工作階段是由哪個應用程式或裝置建立。每個工作階段都有相關聯的資料來源,其中包含收集或轉換資料的應用程式或裝置資訊。

Android

目前只能取得 Android 用戶端所寫入工作階段的套件名稱。如要取得建立工作階段的應用程式套件名稱,請使用 getAppPackageName 方法。您可以在應用程式中使用這項資訊,向使用者顯示哪些其他應用程式插入了健身活動。您可以顯示每個應用程式的圖示,協助使用者辨識。

您也可以觸發意圖啟動其他應用程式,顯示這些應用程式建立的工作階段詳細資料。其他應用程式也可以觸發意圖來啟動您的應用程式。

進一步瞭解如何找出建立工作階段的來源

REST

如要取得建立工作階段的 Android 應用程式套件名稱,請使用 session.application 屬性。如果是使用 REST API 建立的會話,請改用 session.name 屬性。您可以在應用程式中使用這項資訊,向使用者顯示哪些其他應用程式插入了健身活動。您可以顯示每個應用程式的圖示,協助使用者辨識。

進一步瞭解如何找出建立工作階段的來源