工作階段

工作階段可讓使用者輕鬆快速地查看自己做的所有主要活動。這項資訊會顯示在 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:不同應用程式在 [fitness store] 中新增工作階段和資料集。

圖 1 是健身店的時間間隔,其中應用程式 A、B 和 C 插入了部分資料集和工作階段:

  • 應用程式 A 插入了工作階段 A1 和 A2,並隨工作階段 1 和 A3 獨立於任何工作階段。
  • 應用程式 B 與工作階段 2 同時插入了資料集 B1 和 B2。
  • 應用程式 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 屬性。您可在應用程式中使用這項資訊,向使用者顯示哪些應用程式插入了健身工作階段。您可以顯示每個應用程式的圖示,協助使用者識別。

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