Sync Multi-Activity Merge

Multi-Activity Merge

iOS :IDOSyncDataType.activityMerge

Android : IDOSyncDataType.ACTIVITYMERGE

Function table: supportSyncMultiActivityNew

Callback type: IDOSyncDataType.activityMerge / ACTIVITYMERGE

When enabled, replaces legacy activity / swim callbacks and covers multi-sport, swim, running course, running plan, and post-run stretch data.

JSON fields received by App:

Field Type Description
version int Protocol version
Default 0
year int Start time year
month int Start time month
day int Start time day
hour int Start time hour
minute int Start time minute
second int Start time second
end_year int End time year
end_month int End time month
App uses month!=0 to decide whether to use end-time fields
end_day int End time day
end_hour int End time hour
end_minute int End time minute
end_sec int End time second
training_offset int Training course date offset starting from 0
0 if setSupportSportPlan is not enabled
hr_data_interval_sec int Heart rate sample interval
Unit: second
connect_app int Whether the band is connected to app for report generation
1 connected, 0 not connected
sport_start_type int 0: invalid, 1: started by app, 2: started by watch
type int Sport type enum, see Sport Types
act_type int Plan type:
1: 3km running plan
2: 5km running plan
3: 10km running plan
4: half marathon training
5: marathon training
64: 6-min easy run
65: 10-min easy run
66: 15-min easy run
67: walk-run beginner
68: walk-run intermediate
69: walk-run advanced
70: post-run stretch
0 if setSupportSportPlan is not enabled
in_class_calories int In-class calories
Unit: kcal
step int Steps
durations int Duration
Unit: second
calories int Calories
Unit: kcal
distance int Distance
Unit: meter
distance3d int 3D distance
Unit: meter
circle_distance int Lap distance
Unit: meter
avg_hr_value int Average HR
Unit: BPM
max_hr_value int Max HR
Unit: BPM
min_hr_value int Min HR
Unit: BPM
hr_item_count int HR sample count
avg_step_frequency int Average cadence
Unit: steps/min
max_step_frequency int Max cadence
Unit: steps/min
min_step_frequency int Min cadence
Unit: steps/min
frequency_count int Cadence sample count
avg_step_stride int Average stride
Unit: cm
max_step_stride int Max stride
Unit: cm
min_step_stride int Min stride
Unit: cm
stride_count int Stride sample count
avg_speed int Average speed km/h, firmware x100
For swim, overwritten by swim avg pace when swim_avg_pace > 0
max_speed int Max speed km/h, firmware x100
avg_3d_speed int Average 3D speed km/h
App should divide by 100
avg_vertical_speed int Average vertical speed m/h
App should divide by 10
avg_km_speed int Average km pace
Unit: second
max_km_speed int Fastest km pace
Seconds per km
slowest_km_pace int Slowest km pace
Unit: second
real_pace_save_interval int Realtime pace save interval
Unit: second
real_pace_start_offset int Realtime pace data start offset
pace_count int Realtime pace sample count
hr_zone_max_val int HR zone max value
training_effect int Aerobic training effect, range 1.0-5.0 (x10)
aerobic_training_effect int Aerobic training effect, range 1.0-5.0 (x10)
anaerobic_training_effect int Anaerobic training effect, range 1.0-5.0 (x10), 0 invalid
load int Training load
vo2max int VO2max ml/kg/min
Range 0-80, not scaled by 100
grade int VO2max grade
1 low … 7 professional
0 means unsupported
recovery_time_year int Recovery time year
recovery_time_mon int Recovery time month
recovery_time_day int Recovery time day
recovery_time_hour int Recovery time hour
recovery_time_min int Recovery time minute
recovery_time_s int Recovery time second
activity_data_item_count int Per-minute activity item count
km_speed_count int Km pace count
mi_speed_count int Mile pace count
act_count int Action item count
total_paddle_number int Total paddle count
max_paddle_frequency int Max paddle frequency
min_paddle_frequency int Min paddle frequency
avg_paddle_frequency int Average paddle frequency
paddle_frequency_count int Paddle frequency sample count
tread_frequency_count int Tread frequency sample count
completion_rate int Action completion rate 0-100
hr_completion_rate int HR control rate 0-100
warm_up_performance int Warm-up performance 0-100
Valid when setSupportSportPlan and supportWarmUpBeforeRunning
avg_slope int Average slope degrees
-90 ~ 90
avg_altitude int Average altitude meters
-500 ~ 9000
max_altitude int Max altitude meters
-500 ~ 9000
min_altitude int Min altitude meters
-500 ~ 9000
cumulative_altitude_rise int Cumulative altitude gain meters
cumulative_altitude_loss int Cumulative altitude loss meters
altitude_count int Altitude sample count
gps_status int GPS status
0 invalid, 1 on, 2 off
running_economy int Running economy
max_running_power int Max running power
min_running_power int Min running power
avg_running_power int Average running power
running_power_count int Running power sample count
rtpe_count int Realtime perceived exertion (RTPE) sample count
aerobic_power_interval int Aerobic power interval
mixed_oxygen_power_interval int Mixed oxygen power interval
threshold_running_power_interval int Threshold running power interval
intermittent_run_power_interval int Intermittent run power interval
sprint_run_power_interval int Sprint run power interval
max_rtoc int Max realtime O2 consumption (RTOC)
min_rtoc int Min realtime O2 consumption (RTOC)
avg_rtoc int Average realtime O2 consumption (RTOC)
rtoc_count int RTOC sample count
max_rope_frequency int Max jump-rope frequency /min
min_rope_frequency int Min jump-rope frequency /min
avg_rope_frequency int Average jump-rope frequency /min
max_rope_skip_count int Max consecutive jumps
rope_trip_count int Rope trip count
total_rope_count int Total jump count
rope_item_count int Jump-rope item count
smart_competitor int 0 invalid, 1 non-smart pacer, 2 smart pacer
Valid when supportSmartCompetitor
ai_image_id int AI avatar ID
Valid when supportSmartCompetitor
user_image_id int User avatar ID
Valid when supportSmartCompetitor
bg_image_id int Background image ID
Valid when supportSmartCompetitor
smart_competitor_pace int Smart competitor pace
Valid when supportSmartCompetitor
interval_train_item_count int Interval training item count
lap_count int Lap item count
recovery_hr_start_time int Post-workout recovery HR start time
recovery_hr_count int Post-workout recovery HR count
trips int Swim laps
average_swolf int Average SWOLF
total_strokes_number int Total strokes
swimming_posture int Main stroke
0 mixed, 1 freestyle, 2 breaststroke, 3 backstroke, 4 butterfly
pool_distance int Pool length: integer part
Unit: meter (e.g. for 16.23m, pass 16 as the integer part)
e.g. 16.23m → pool_distance=16, pool_distance_decimal=2300
pool_distance_decimal int Pool length: fractional part
4 decimal digits; e.g. 16.23m → pool_distance=16, pool_distance_decimal=2300
avg_frequency int Average stroke rate
Unit: /min
total_duration int Swim total duration
Unit: second
total_rest_time int Swim total rest time
Unit: second
swim_item_count int Swim lap item count
heart_rate_zones_mode int HR zones mode
0x01 reserve HR mode (easy/marathon/threshold/anaerobic/interval fields)
else classic five zones (warm_up/fat_burning/...)
location_marker_item_count int Location marker count
slowest_speed int Slowest speed km/h, firmware x100
start_dist_unit int Start distance unit
tennis_stroke_count int Tennis stroke count
tennis_serve_count int Tennis serve count
tennis_forehead_count int Tennis forehand count
tennis_backhand_count int Tennis backhand count
stroke_count int Stroke count (same as tennis_stroke_count; legacy-compatible)
serve_count int Serve count (same as tennis_serve_count)
forehand_count int Forehand count (v20 multi-sport; interoperates with tennis_forehead_count)
backhand_count int Backhand count (v20 multi-sport; interoperates with tennis_backhand_count)
body_age int Body age
session_id int Session ID
total_sit_up_count int Total sit-up count
sport_mode_data_type int Sport mode data type
0 invalid, 1 auto, 2 manual
is_tentative bool true when the device is a screenless band and the record is automatic sport data (tentative)
easy_zone_mins int Reserve HR mode easy zone minutes
Valid when heart_rate_zones_mode==0x01
marathon_zone_mins int Reserve HR mode marathon zone minutes
threshold_zone_mins int Reserve HR mode threshold zone minutes
anaerobic_zone_mins int Reserve HR mode anaerobic zone minutes
interval_zone_mins int Reserve HR mode interval zone minutes
easy_zone_sec int Reserve HR mode easy zone seconds
marathon_zone_sec int Reserve HR mode marathon zone seconds
threshold_zone_sec int Reserve HR mode threshold zone seconds
anaerobic_zone_sec int Reserve HR mode anaerobic zone seconds
interval_zone_sec int Reserve HR mode interval zone seconds
warm_up_mins int Warm-up duration minutes
fat_burning_mins int Fat-burning duration minutes
aerobic_exercise_mins int Aerobic duration minutes
anaerobic_exercise_mins int Anaerobic duration minutes
extreme_exercise_mins int Extreme duration minutes
warm_up_sec int Warm-up duration seconds
fat_burning_sec int Fat-burning duration seconds
aerobic_exercise_sec int Aerobic duration seconds
anaerobic_exercise_sec int Anaerobic duration seconds
extreme_exercise_sec int Extreme duration seconds
hr_data_vlaue int [] HR samples
items collection Per-minute activity items: steps & calories & distance
items_km_speed collection Km pace items: second
frequency_items int [] Cadence samples
items_mi_speed int [] Mile pace samples
pace_speed_items int [] Realtime pace samples
paddle_frequency_items int [] Paddle frequency samples
tread_frequency_items int [] Tread frequency samples
altitude_item int [] Altitude samples meters -500~9000
item_running_power int [] Running power samples
item_rtpe int [] RTPE samples
item_rtoc int [] RTOC samples
item_rope_info collection Jump-rope items: rope_skip_count & duration
action_temp collection Action items: type & actual_time & goal_time & heart_value
interval_item collection Interval items: stage_type & repeat_num & stage_data_num & stage_data_type_item
stride_items int [] Realtime stride samples
lap_item collection Lap items: lap_data_num & lap_data_item
swim_lap_items collection Swim lap items: swolf & swimming_posture & strokes_number & duration & distance & frequency & speed & stop_time & difference_time & avg_hr
location_marker_items collection Location markers: location_name & longitude & latitude & altitude
recovery_hr_items_60 collection Recovery HR items: data_type & recovery_hr_data

items items — Per-minute activity details

Field Type Description
steps int Steps
calories int Calories
distance int Distance
Unit: meter

items_km_speed items — Km pace

Field Type Description
second int Km pace
Unit: second

item_rope_info items — Jump-rope details

Field Type Description
rope_skip_count int Jump count in segment
duration int Segment duration
Unit: second

action_temp items — Action details

Field Type Description
type int Action type
actual_time int Actual duration
Unit: second
goal_time int Goal duration
Unit: second
heart_value int Heart rate
Unit: BPM

interval_item items — Interval training details

Field Type Description
stage_type int Stage type
repeat_num int Repeat count
stage_data_num int Stage data count
stage_data_type_item collection Stage data items: stage_support_type & stage_data_value

stage_data_type_item items — Interval stage data

Field Type Description
stage_support_type int Stage data type
stage_data_value int Stage data value

lap_item items — Lap details

Field Type Description
lap_data_num int Lap data count
lap_data_item collection Lap data items: lap_data_type & lap_data_val

lap_data_item items — Lap data entry

Field Type Description
lap_data_type int Lap data type
lap_data_val int Lap data value

swim_lap_items items — Swim lap details

Field Type Description
swolf int SWOLF (0–65535)
swimming_posture int Stroke
0 mixed, 1 freestyle, 2 breaststroke, 3 backstroke, 4 butterfly
strokes_number int Stroke count
duration int Duration
Unit: second
distance int Distance
Unit: meter
frequency int Frequency
Unit: /min
speed int Pace
sec/100m
stop_time int Stop time
Unit: second
difference_time int Rest between laps
Unit: second
avg_hr int Average HR per lap
Unit: BPM; present when firmware sends new lap detail

location_marker_items items — Location marker details

Field Type Description
location_name string Location name
longitude string Longitude (string after /1e7)
latitude string Latitude (string after /1e7)
altitude int Altitude
Unit: meter

recovery_hr_items_60 items — Post-workout recovery HR details

Field Type Description
data_type int Recovery HR data type
recovery_hr_data int Recovery HR value
Unit: BPM

Example:

{
    "version": 0,
    "year": 2024,
    "month": 6,
    "day": 1,
    "hour": 8,
    "minute": 0,
    "second": 0,
    "end_year": 2024,
    "end_month": 6,
    "end_day": 1,
    "end_hour": 8,
    "end_minute": 30,
    "end_sec": 0,
    "training_offset": 0,
    "hr_data_interval_sec": 5,
    "connect_app": 1,
    "sport_start_type": 2,
    "type": 48,
    "act_type": 0,
    "in_class_calories": 0,
    "step": 3200,
    "durations": 1800,
    "calories": 180,
    "distance": 3200,
    "distance3d": 3250,
    "circle_distance": 400,
    "avg_hr_value": 128,
    "max_hr_value": 160,
    "min_hr_value": 90,
    "hr_item_count": 3,
    "avg_step_frequency": 160,
    "max_step_frequency": 180,
    "min_step_frequency": 140,
    "frequency_count": 2,
    "avg_step_stride": 110,
    "max_step_stride": 125,
    "min_step_stride": 95,
    "stride_count": 2,
    "avg_speed": 960,
    "max_speed": 1200,
    "avg_3d_speed": 970,
    "avg_vertical_speed": 50,
    "avg_km_speed": 360,
    "max_km_speed": 330,
    "slowest_km_pace": 420,
    "real_pace_save_interval": 5,
    "real_pace_start_offset": 0,
    "pace_count": 2,
    "hr_zone_max_val": 190,
    "training_effect": 35,
    "aerobic_training_effect": 35,
    "anaerobic_training_effect": 20,
    "load": 80,
    "vo2max": 45,
    "grade": 4,
    "recovery_time_year": 2024,
    "recovery_time_mon": 6,
    "recovery_time_day": 1,
    "recovery_time_hour": 12,
    "recovery_time_min": 0,
    "recovery_time_s": 0,
    "activity_data_item_count": 2,
    "km_speed_count": 2,
    "mi_speed_count": 1,
    "act_count": 1,
    "total_paddle_number": 0,
    "max_paddle_frequency": 0,
    "min_paddle_frequency": 0,
    "avg_paddle_frequency": 0,
    "paddle_frequency_count": 0,
    "tread_frequency_count": 0,
    "completion_rate": 90,
    "hr_completion_rate": 85,
    "warm_up_performance": 70,
    "avg_slope": 2,
    "avg_altitude": 50,
    "max_altitude": 80,
    "min_altitude": 20,
    "cumulative_altitude_rise": 30,
    "cumulative_altitude_loss": 10,
    "altitude_count": 2,
    "gps_status": 1,
    "running_economy": 0,
    "max_running_power": 320,
    "min_running_power": 180,
    "avg_running_power": 250,
    "running_power_count": 2,
    "rtpe_count": 2,
    "aerobic_power_interval": 10,
    "mixed_oxygen_power_interval": 8,
    "threshold_running_power_interval": 5,
    "intermittent_run_power_interval": 3,
    "sprint_run_power_interval": 1,
    "max_rtoc": 50,
    "min_rtoc": 30,
    "avg_rtoc": 40,
    "rtoc_count": 2,
    "max_rope_frequency": 0,
    "min_rope_frequency": 0,
    "avg_rope_frequency": 0,
    "max_rope_skip_count": 0,
    "rope_trip_count": 0,
    "total_rope_count": 0,
    "rope_item_count": 0,
    "smart_competitor": 0,
    "ai_image_id": 0,
    "user_image_id": 0,
    "bg_image_id": 0,
    "smart_competitor_pace": 0,
    "interval_train_item_count": 1,
    "lap_count": 1,
    "recovery_hr_start_time": 0,
    "recovery_hr_count": 2,
    "trips": 2,
    "average_swolf": 102,
    "total_strokes_number": 30,
    "swimming_posture": 1,
    "pool_distance": 16,
    "pool_distance_decimal": 2300,
    "avg_frequency": 25,
    "total_duration": 78,
    "total_rest_time": 42,
    "swim_item_count": 1,
    "heart_rate_zones_mode": 0,
    "location_marker_item_count": 1,
    "slowest_speed": 800,
    "start_dist_unit": 0,
    "tennis_stroke_count": 0,
    "tennis_serve_count": 0,
    "tennis_forehead_count": 0,
    "tennis_backhand_count": 0,
    "stroke_count": 0,
    "serve_count": 0,
    "forehand_count": 0,
    "backhand_count": 0,
    "body_age": 0,
    "session_id": 0,
    "total_sit_up_count": 0,
    "sport_mode_data_type": 0,
    "is_tentative": false,
    "easy_zone_mins": 0,
    "marathon_zone_mins": 0,
    "threshold_zone_mins": 0,
    "anaerobic_zone_mins": 0,
    "interval_zone_mins": 0,
    "easy_zone_sec": 0,
    "marathon_zone_sec": 0,
    "threshold_zone_sec": 0,
    "anaerobic_zone_sec": 0,
    "interval_zone_sec": 0,
    "warm_up_mins": 2,
    "fat_burning_mins": 10,
    "aerobic_exercise_mins": 12,
    "anaerobic_exercise_mins": 3,
    "extreme_exercise_mins": 1,
    "warm_up_sec": 10,
    "fat_burning_sec": 20,
    "aerobic_exercise_sec": 5,
    "anaerobic_exercise_sec": 15,
    "extreme_exercise_sec": 0,
    "hr_data_vlaue": [
        120,
        125,
        130
    ],
    "items": [
        {
            "steps": 160,
            "calories": 8,
            "distance": 160
        },
        {
            "steps": 165,
            "calories": 9,
            "distance": 165
        }
    ],
    "items_km_speed": [
        {
            "second": 360
        },
        {
            "second": 355
        }
    ],
    "frequency_items": [
        160,
        162
    ],
    "items_mi_speed": [
        580
    ],
    "pace_speed_items": [
        360,
        355
    ],
    "paddle_frequency_items": [],
    "tread_frequency_items": [],
    "altitude_item": [
        45,
        55
    ],
    "item_running_power": [
        240,
        260
    ],
    "item_rtpe": [
        70,
        75
    ],
    "item_rtoc": [
        38,
        42
    ],
    "item_rope_info": [],
    "action_temp": [
        {
            "type": 1,
            "actual_time": 60,
            "goal_time": 60,
            "heart_value": 130
        }
    ],
    "interval_item": [
        {
            "stage_type": 1,
            "repeat_num": 2,
            "stage_data_num": 1,
            "stage_data_type_item": [
                {
                    "stage_support_type": 1,
                    "stage_data_value": 100
                }
            ]
        }
    ],
    "stride_items": [
        110,
        112
    ],
    "lap_item": [
        {
            "lap_data_num": 1,
            "lap_data_item": [
                {
                    "lap_data_type": 1,
                    "lap_data_val": 400
                }
            ]
        }
    ],
    "swim_lap_items": [
        {
            "swolf": 102,
            "swimming_posture": 1,
            "strokes_number": 15,
            "duration": 36,
            "distance": 25,
            "frequency": 25,
            "speed": 144,
            "stop_time": 0,
            "difference_time": 7
        }
    ],
    "location_marker_items": [
        {
            "location_name": "start",
            "longitude": "113.9345280",
            "latitude": "22.5405030",
            "altitude": 50
        }
    ],
    "recovery_hr_items_60": [
        {
            "data_type": 1,
            "recovery_hr_data": 110
        },
        {
            "data_type": 1,
            "recovery_hr_data": 100
        }
    ]
}
Copyright © 2023-2024 IDO. All rights reserved. all right reserved,powered by Gitbook修改日期: 2026-10-20 07:53:20

results matching ""

    No results matching ""