跳到主要内容

运动 (TSSport)

TSSport 模块提供了运动活动数据的完整管理功能,包括从设备同步运动数据、详细指标查询、心率数据分析等。支持超过100种运动类型,并提供丰富的性能指标(距离、步数、卡路里、心率区间等)。

前提条件

  1. 已成功初始化 TopStepComKit SDK
  2. 已建立与设备的连接
  3. 设备支持运动数据记录功能
  4. 用户已授予相关健康数据权限

数据模型

TSSportModel

属性名类型说明
summaryTSSportSummaryModel *运动活动总结数据,包含整体统计和成就
sportItemsNSArray<TSSportItemModel *> *运动活动详细数据项数组,每项代表特定时间点或片段的指标
heartRateItemsNSArray<TSHRValueItem *> *心率数据数组,提供整个活动过程中的连续心率监测

TSSportDailyModel

属性名类型说明
sportRecordsNSArray<TSSportModel *> *当天的运动活动记录数组
sportCountNSUInteger当天运动活动总数,从 sportRecords.count 推导
totalDurationNSTimeInterval所有运动活动的总时长(秒),通过累加所有活动的时长计算
maxHeartRateUInt8当天所有运动中的最高心率(BPM),从各活动的最高心率推导
minHeartRateUInt8当天所有运动中的最低心率(BPM),从各活动的最低心率推导

TSSportSummaryModel

属性名类型说明
startTimeNSTimeInterval数据记录的开始时间戳(Unix 秒级)
endTimeNSTimeInterval数据记录的结束时间戳(Unix 秒级)
durationdouble数据记录的持续时间(秒)
userIDNSString *进行运动活动的用户的唯一标识符
macAddressNSString *记录运动活动的设备的MAC地址
sportIDlong运动活动会话的唯一标识符
typeTSSportTypeEnum运动活动的类型(跑步、骑行、游泳等)
stepsUInt32运动活动期间的总步数
distanceUInt32运动活动期间的总距离(米)
calorieUInt32运动活动期间消耗的总卡路里(小卡)
maxHrValueUInt8运动活动期间的最高心率(BPM)
minHrValueUInt8运动活动期间的最低心率(BPM)
avgHrValueUInt8运动活动期间的平均心率(BPM)
maxPacefloat运动活动期间的最高配速(s/km)
minPacefloat运动活动期间的最低配速(s/km)
avgPacefloat运动活动期间的平均配速(s/km)
maxSpeedfloat运动活动期间的最高速度(m/s)
minSpeedfloat运动活动期间的最低速度(m/s)
avgSpeedfloat运动活动期间的平均速度(m/s)
maxCadenceUInt8运动活动期间的最高步频(步/分钟)
minCadenceUInt8运动活动期间的最低步频(步/分钟)
avgCadenceUInt8运动活动期间的平均步频(步/分钟)
warmHrDurationUInt32热身心率区间的持续时间(秒),HR < (220-年龄) * 0.6
fatBurnHrDurationUInt32脂肪燃烧心率区间的持续时间(秒),(220-年龄) * 0.6 ≤ HR < (220-年龄) * 0.7
aerobicHrDurationUInt32有氧心率区间的持续时间(秒),(220-年龄) * 0.7 ≤ HR < (220-年龄) * 0.8
anaerobicHrDurationUInt32无氧心率区间的持续时间(秒),(220-年龄) * 0.8 ≤ HR < (220-年龄) * 0.9
extremeHrDurationUInt32极限心率区间的持续时间(秒),HR ≥ (220-年龄) * 0.9
warmHrRatioUInt8热身心率区间时间占比(0-100)
fatBurnHrRatioUInt8脂肪燃烧心率区间时间占比(0-100)
aerobicHrRatioUInt8有氧心率区间时间占比(0-100)
anaerobicHrRatioUInt8无氧心率区间时间占比(0-100)
extremeHrRatioUInt8极限心率区间时间占比(0-100)
displayConfigsNSData *显示配置位图,若为 nil 表示设备不支持该功能

TSSportItemModel

属性名类型说明
**基本信息**
userIDNSString *进行运动活动的用户的唯一标识符
macAddressNSString *记录运动活动的设备的MAC地址
sportIDlong运动活动会话的唯一标识符
typeUInt16运动活动的类型
**基本指标**
distanceNSInteger运动过程中覆盖的总距离(米)
stepsNSInteger运动过程中的总步数
caloriesNSInteger运动过程中消耗的卡路里(小卡)
paceNSInteger当前运动的配速(s/km)
cadenceNSInteger运动过程中的步频(步/分钟)
speedNSInteger运动过程中的速度(m/min)
**游泳指标**
swimStyleint游泳姿势(1=自由泳, 2=蛙泳, 3=仰泳, 4=蝶泳)
swimLapsint完成的游泳趟数
swimStrokesint总划水次数
swimStrokeFreqint游泳划水频率(次/分钟)
swolfint游泳效率指数(SWOLF),分数越低效率越高
**跳绳指标**
jumpCountint成功跳跃的总次数
jumpBkCountint跳绳活动中发生中断的次数
jumpConsCountint不间断连续跳绳的最高次数
**椭圆机指标**
elCountint椭圆机运动中的总步数
elFrequecyint椭圆机当前的步频(步/分钟)
elMaxFrequecyint椭圆机运动中达到的最高步频(步/分钟)
elMinFrequecyint椭圆机运动中记录的最低步频(步/分钟)
**划船机指标**
rowCountint划船运动完成的总划桨次数
rowFrequecyint划船当前的频率(次/分钟)
rowMaxFrequecyint划船运动中达到的最高频率(次/分钟)
rowMinFrequecyint划船运动中记录的最低频率(次/分钟)

枚举与常量

TSSportTypeEnum - 运动类型枚举

枚举值十六进制值说明
TSSportTypeOutdoorCycling0x01户外骑行
TSSportTypeOutdoorRunning0x05户外跑步
TSSportTypeIndoorRunning0x09室内跑步
TSSportTypeOutdoorWalking0x0D户外健走
TSSportTypeClimbing0x11登山
TSSportTypeBasketball0x15篮球
TSSportTypeSwimming0x19游泳
TSSportTypeBadminton0x1D羽毛球
TSSportTypeFootball0x21足球
TSSportTypeElliptical0x25椭圆机
TSSportTypeYoga0x29瑜伽
TSSportTypePingPong0x2D乒乓球
TSSportTypeRopeSkipping0x31跳绳
TSSportTypeRowing0x35划船机
TSSportTypeLazyBike0x39懒人车
TSSportTypeFitnessBike0x3D健身车
TSSportTypeFreeTraining0x41自由训练
TSSportTypeTennis0x45网球
TSSportTypeBaseball0x49棒球
TSSportTypeRugby0x4D橄榄球
TSSportTypeCricket0x51板球
TSSportTypeFreeSports0x55自由运动
TSSportTypeStrengthTraining0x59力量训练
TSSportTypeIndoorWalking0x5D室内走路
TSSportTypeIndoorCycling0x61室内骑行
TSSportTypeDumbbell0x65哑铃
TSSportTypeDance0x69舞蹈
TSSportTypeHulaHoop0x6D呼啦圈
TSSportTypeGolf0x71高尔夫
TSSportTypeLongJump0x75跳远
TSSportTypeSitUp0x79仰卧起坐
TSSportTypeVolleyball0x7D排球
TSSportTypeParkour0x81跑酷
TSSportTypeHiking0x85徒步
TSSportTypeHockey0x89曲棍球
TSSportTypeBoating0x8D划船
TSSportTypeHIIT0x91HIIT高强度间歇训练
TSSportTypeSoftball0x95垒球
TSSportTypeTrailRunning0x99越野跑
TSSportTypeSkiing0x9D滑雪
TSSportTypeTreadmill0xA1漫步机
TSSportTypeRelaxation0xA5整理放松
TSSportTypeCrossTraining0xA9交叉训练
TSSportTypePilates0xAD普拉提
TSSportTypeCrossMatch0xB1交叉配合
TSSportTypeFunctionalTraining0xB5功能性训练
TSSportTypePhysicalTraining0xB9体能训练
TSSportTypeMixedCardio0xBD混合有氧
TSSportTypeLatinDance0xC1拉丁舞
TSSportTypeStreetDance0xC5街舞
TSSportTypeFreeSparring0xC9自由搏击
TSSportTypeBallet0xCD芭蕾
TSSportTypeAustralianFootball0xD1澳式足球
TSSportTypeBowling0xD5保龄球
TSSportTypeSquash0xD9壁球
TSSportTypeCurling0xDD冰壶
TSSportTypeSnowboarding0xE1单板滑雪
TSSportTypeFishing0xE5钓鱼
TSSportTypeFrisbee0xE9飞盘
TSSportTypeAlpineSkiing0xED高山滑雪
TSSportTypeCoreTraining0xF1核心训练
TSSportTypeSkating0xF5滑冰
TSSportTypeFitnessGaming0xF9健身游戏
TSSportTypeAerobics0xFD健身操
TSSportTypeGroupCallisthenics0x0101团体操
TSSportTypeKickBoxing0x0105搏击操
TSSportTypeFencing0x0109击剑
TSSportTypeStairClimbing0x010D爬楼
TSSportTypeAmericanFootball0x0111美式橄榄球
TSSportTypeFoamRolling0x0115泡沫轴筋膜放松
TSSportTypePickleball0x0119匹克球
TSSportTypeBoxing0x011D拳击
TSSportTypeTaekwondo0x0121跆拳道
TSSportTypeKarate0x0125空手道
TSSportTypeFlexibility0x0129柔韧度
TSSportTypeHandball0x012D手球
TSSportTypeHandcar0x0131手摇车
TSSportTypeMeditation0x0135舒缓冥想类运动
TSSportTypeWrestling0x0139摔跤
TSSportTypeStepping0x013D踏步
TSSportTypeTaiChi0x0141太极
TSSportTypeGymnastics0x0145体操
TSSportTypeTrackAndField0x0149田径
TSSportTypeMartialArts0x014D武术
TSSportTypeLeisureSports0x0151休闲运动
TSSportTypeSnowSports0x0155雪上运动
TSSportTypeLacrosse0x0159长曲棍球
TSSportTypeHorizontalBar0x015D单杠
TSSportTypeParallelBars0x0161双杠
TSSportTypeRollerSkating0x0165轮滑
TSSportTypeDarts0x0169飞镖
TSSportTypeArchery0x016D射箭
TSSportTypeHorseRiding0x0171骑马
TSSportTypeShuttlecock0x0175毽球
TSSportTypeIceHockey0x0179冰球
TSSportTypeAbdominalTraining0x017D腰腹训练
TSSportTypeVO2MaxTest0x0181最大摄氧量测试
TSSportTypeJudo0x0185柔道
TSSportTypeTrampolining0x0189蹦床
TSSportTypeSkateboard0x018D滑板
TSSportTypeHoverBoard0x0191平衡车
TSSportTypeInlineSkating0x0195溜旱冰
TSSportTypeTreadmillRunning0x0199跑步机
TSSportTypeDiving0x019D跳水
TSSportTypeSurfing0x01A1冲浪
TSSportTypeSnorkeling0x01A5浮潜
TSSportTypePullUp0x01A9引体向上
TSSportTypePushUp0x01AD俯卧撑
TSSportTypePlank0x01B1平板支撑
TSSportTypeRockClimbing0x01B5攀岩
TSSportTypeHighJump0x01B9跳高
TSSportTypeBungeeJumping0x01BD蹦极
TSSportTypeNationalDance0x01C1民族舞
TSSportTypeHunting0x01C5打猎
TSSportTypeShooting0x01C9射击
TSSportTypeMarathon0x01CD马拉松
TSSportTypeSpinningBike0x01D1动感单车
TSSportTypePoolSwimming0x01D5泳池游泳
TSSportTypeOpenWaterSwimming0x01D9开放水域游泳
TSSportTypeBallroomDance0x01DD交际舞
TSSportTypeZumba0x01E1尊巴
TSSportTypeJazzDance0x01E5爵士舞
TSSportTypeStepMachine0x01E9踏步机
TSSportTypeStairMachine0x01ED爬楼机
TSSportTypeCroquet0x01F1门球
TSSportTypeWaterPolo0x01F5水球
TSSportTypeWallBall0x01F9墙球
TSSportTypeBilliards0x01FD台球
TSSportTypeSepakTakraw0x0201藤球
TSSportTypeStretching0x0205拉伸
TSSportTypeFreeGymnastics0x0209自由体操
TSSportTypeBarbell0x020D杠铃
TSSportTypeWeightlifting0x0211举重
TSSportTypeDeadlift0x0215硬拉
TSSportTypeBurpee0x0219波比跳
TSSportTypeJumpingJack0x021D开合跳
TSSportTypeUpperBodyTraining0x0221上肢训练
TSSportTypeLowerBodyTraining0x0225下肢训练
TSSportTypeBackTraining0x0229背部训练
TSSportTypeBeachBuggy0x022D沙滩车
TSSportTypeParagliding0x0231滑翔伞
TSSportTypeFlyAKite0x0235放风筝
TSSportTypeTugOfWar0x0239拔河
TSSportTypeTriathlon0x023D铁人三项
TSSportTypeSnowmobile0x0241雪地摩托
TSSportTypeSnowCar0x0245雪车
TSSportTypeSled0x0249雪橇
TSSportTypeSkiBoard0x024D滑雪板
TSSportTypeCrossCountrySkiing0x0251越野滑雪
TSSportTypeIndoorSkating0x0255室内滑冰
TSSportTypeKabaddi0x0259卡巴迪
TSSportTypeMuayThai0x025D泰拳
TSSportTypeKickboxing0x0261踢拳
TSSportTypeRacing0x0265赛车
TSSportTypeIndoorFitness0x0269室内健身
TSSportTypeOutdoorSoccer0x026D户外足球
TSSportTypeBellyDance0x0271肚皮舞
TSSportTypeSquareDance0x0275广场舞

TSSportDisplayMetric - 运动显示指标枚举

枚举值说明
TSSportDisplayMetricDuration1持续时间
TSSportDisplayMetricHeartRate2心率
TSSportDisplayMetricSteps3步数
TSSportDisplayMetricDistance4距离
TSSportDisplayMetricCalories5卡路里
TSSportDisplayMetricAvgSpeed6平均速度
TSSportDisplayMetricAvgPace7平均配速
TSSportDisplayMetricAvgCadence8平均步频
TSSportDisplayMetricAvgStride9平均步幅
TSSportDisplayMetricTotalAscent10累计上升
TSSportDisplayMetricTotalDescent11累计下降
TSSportDisplayMetricSwimLaps12游泳趟数
TSSportDisplayMetricSwimStrokes13游泳划水次数
TSSportDisplayMetricSwimStyle14泳姿
TSSportDisplayMetricSwimStrokeRate15游泳划水频率
TSSportDisplayMetricSwimEfficiency16游泳效率(SWOLF)
TSSportDisplayMetricTriggerCount17触发次数
TSSportDisplayMetricTriggerRate18触发频率
TSSportDisplayMetricInterruptionCount19中断次数
TSSportDisplayMetricContinuousCount20连续次数

回调类型

回调签名说明
void (^)(NSArray<TSSportModel *> *_Nullable sports, NSError *_Nullable error)运动数据同步完成回调。返回同步的运动活动数据数组或错误信息

接口方法

1. 数据同步

同步指定时间范围内的运动历史数据

- (void)syncHistoryDataFormStartTime:(NSTimeInterval)startTime
endTime:(NSTimeInterval)endTime
completion:(nonnull void (^)(NSArray<TSSportModel *> *_Nullable sports, NSError *_Nullable error))completion;

同步设备上指定时间范围内的所有运动活动数据,包括详细指标和心率信息。

参数

参数名类型说明
startTimeNSTimeInterval数据同步的开始时间戳(Unix秒级)
endTimeNSTimeInterval数据同步的结束时间戳(Unix秒级)
completionvoid (^)(NSArray<TSSportModel *> *_Nullable, NSError *_Nullable)同步完成的回调块,返回运动数据数组或错误

代码示例

id<TSSportInterface> sport = [TopStepComKit sharedInstance].sport;

// 定义时间范围:最近7天
NSDate *now = [NSDate date];
NSDate *sevenDaysAgo = [now dateByAddingTimeInterval: -7 * 24 * 60 * 60];

NSTimeInterval startTime = [sevenDaysAgo timeIntervalSince1970];
NSTimeInterval endTime = [now timeIntervalSince1970];

// 同步运动数据
[sport syncHistoryDataFormStartTime:startTime
endTime:endTime
completion:^(NSArray<TSSportModel *> * _Nullable sports, NSError * _Nullable error) {
if (error) {
TSLog(@"同