PolarOfflineExerciseV2Api

public protocol PolarOfflineExerciseV2Api

Offline Exercise V2 API.

Allows managing offline exercise sessions on supported Polar devices. This API supports devices that use the Data Merge protocol for offline exercise recording, enabling recording of exercise data even when the device is not connected.

All methods require the SDK feature PolarBleSdkFeature.FEATURE_POLAR_OFFLINE_EXERCISE_V2 and the device must have the dm_exercise capability.

All operations are asynchronous and return RxSwift primitives.

  • Starts a new offline exercise session on the device.

    Requires feature PolarBleSdkFeature.FEATURE_POLAR_OFFLINE_EXERCISE_V2.

    • Errors: Emits an error if:

      • The device is not connected.
      • The PSFTP service is not available.
      • The device returns a protocol-level error.

    Declaration

    Swift

    func startOfflineExerciseV2(
        identifier: String,
        sportProfile: PolarExerciseSession.SportProfile
    ) -> Single<OfflineExerciseStartResult>

    Parameters

    identifier

    The unique device identifier.

    sportProfile

    The sport profile to use for the session.

    Return Value

    A Single emitting OfflineExerciseStartResult describing the outcome of the start request.

  • Stops the currently running offline exercise session.

    Requires feature PolarBleSdkFeature.FEATURE_POLAR_OFFLINE_EXERCISE_V2.

    • Errors: Emits an error if stopping fails or the device is not ready.

    Declaration

    Swift

    func stopOfflineExerciseV2(
        identifier: String
    ) -> Completable

    Parameters

    identifier

    The unique device identifier.

    Return Value

    A Completable that completes when the device confirms the stop operation.

  • Retrieves the current offline exercise state.

    Requires feature PolarBleSdkFeature.FEATURE_POLAR_OFFLINE_EXERCISE_V2.

    • Errors: Emits an error if the status request fails.

    Declaration

    Swift

    func getOfflineExerciseStatusV2(
        identifier: String
    ) -> Single<Bool>

    Parameters

    identifier

    The unique device identifier.

    Return Value

    A Single emitting:

    • true if a Data Merge exercise is currently running.
    • false otherwise.
  • Lists offline exercise entries stored in the device.

    Requires feature PolarBleSdkFeature.FEATURE_POLAR_OFFLINE_EXERCISE_V2.

    Declaration

    Swift

    func listOfflineExercisesV2(
        identifier: String,
        directoryPath: String
    ) -> Observable<PolarExerciseEntry>

    Parameters

    identifier

    The unique device identifier.

    directoryPath

    Root directory path to search from.

    Return Value

    An Observable emitting PolarExerciseEntry objects representing available exercise files.

  • Fetches offline exercise data from the device.

    Requires feature PolarBleSdkFeature.FEATURE_POLAR_OFFLINE_EXERCISE_V2.

    Declaration

    Swift

    func fetchOfflineExerciseV2(
        identifier: String,
        entry: PolarExerciseEntry
    ) -> Single<PolarExerciseData>

    Parameters

    identifier

    The unique device identifier.

    entry

    The exercise entry to fetch.

    Return Value

    A Single emitting PolarExerciseData containing parsed exercise samples.

  • Removes an offline exercise from the device.

    Requires feature PolarBleSdkFeature.FEATURE_POLAR_OFFLINE_EXERCISE_V2.

    Declaration

    Swift

    func removeOfflineExerciseV2(
        identifier: String,
        entry: PolarExerciseEntry
    ) -> Completable

    Parameters

    identifier

    The unique device identifier.

    entry

    The exercise entry to remove.

    Return Value

    A Completable that completes once removal has been confirmed by the device.

  • Checks whether the connected device supports Offline Exercise V2 functionality (dm_exercise capability).

    Requires feature PolarBleSdkFeature.FEATURE_POLAR_OFFLINE_EXERCISE_V2.

    Declaration

    Swift

    func isOfflineExerciseV2Supported(
        identifier: String
    ) -> Single<Bool>

    Parameters

    identifier

    The unique device identifier.

    Return Value

    A Single emitting:

    • true if the device supports dm_exercise.
    • false otherwise.
  • exerciseSamplesFile Default implementation

    Name of the exercise samples file stored inside exercise directories on the device.

    Default Implementation

    Declaration

    Swift

    static var exerciseSamplesFile: String { get }
  • Starts a new offline exercise session on the device using the default sport profile.

    This is a convenience method that calls startOfflineExerciseV2(identifier:sportProfile:) internally with PolarExerciseSession.SportProfile.OTHER_OUTDOOR as the default sport profile.

    Requires feature PolarBleSdkFeature.FEATURE_POLAR_OFFLINE_EXERCISE_V2.

    • Errors: Emits an error if:

      • The device is not connected.
      • The PSFTP service is not available.
      • The device returns a protocol-level error.

    Declaration

    Swift

    func startOfflineExerciseV2(
        identifier: String
    ) -> Single<OfflineExerciseStartResult>

    Parameters

    identifier

    The unique device identifier.

    Return Value

    A Single emitting OfflineExerciseStartResult describing the outcome of the start request.

  • Lists offline exercise entries stored in the device using the default directory ("/").

    This is a convenience method that calls listOfflineExercisesV2(identifier:directoryPath:) internally.

    Requires feature PolarBleSdkFeature.FEATURE_POLAR_OFFLINE_EXERCISE_V2.

    Declaration

    Swift

    func listOfflineExercisesV2(
        identifier: String
    ) -> Observable<PolarExerciseEntry>

    Parameters

    identifier

    The unique device identifier.

    Return Value

    An Observable emitting PolarExerciseEntry objects representing available exercise files in the default directory.