工作階段

使用者可透過工作階段,輕鬆快速地查看自己完成的所有主要活動清單。這些貼文會顯示在 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 屬性。您可以在應用程式中使用這項資訊,讓使用者知道哪些其他應用程式插入了健身工作階段。您可以顯示每個應用程式的圖示,方便使用者辨識。

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