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
identifierThe unique device identifier.
sportProfileThe sport profile to use for the session.
Return Value
A
SingleemittingOfflineExerciseStartResultdescribing 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 ) -> CompletableParameters
identifierThe unique device identifier.
Return Value
A
Completablethat 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
identifierThe unique device identifier.
Return Value
A
Singleemitting:trueif a Data Merge exercise is currently running.falseotherwise.
-
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
identifierThe unique device identifier.
directoryPathRoot directory path to search from.
Return Value
An
ObservableemittingPolarExerciseEntryobjects 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
identifierThe unique device identifier.
entryThe exercise entry to fetch.
Return Value
A
SingleemittingPolarExerciseDatacontaining 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 ) -> CompletableParameters
identifierThe unique device identifier.
entryThe exercise entry to remove.
Return Value
A
Completablethat completes once removal has been confirmed by the device. -
Checks whether the connected device supports Offline Exercise V2 functionality (
dm_exercisecapability).Requires feature
PolarBleSdkFeature.FEATURE_POLAR_OFFLINE_EXERCISE_V2.Declaration
Swift
func isOfflineExerciseV2Supported( identifier: String ) -> Single<Bool>Parameters
identifierThe unique device identifier.
Return Value
A
Singleemitting:trueif the device supportsdm_exercise.falseotherwise.
-
exerciseSamplesFileDefault implementationName of the exercise samples file stored inside exercise directories on the device.
Default Implementation
Declaration
Swift
static var exerciseSamplesFile: String { get } -
startOfflineExerciseV2(identifier:Extension method) 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 withPolarExerciseSession.SportProfile.OTHER_OUTDOORas 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
identifierThe unique device identifier.
Return Value
A
SingleemittingOfflineExerciseStartResultdescribing the outcome of the start request. -
listOfflineExercisesV2(identifier:Extension method) 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
identifierThe unique device identifier.
Return Value
An
ObservableemittingPolarExerciseEntryobjects representing available exercise files in the default directory.