更新记录
1.0.1(2026-07-03)
文档优化
1.0.0(2026-07-03)
首次提交
平台兼容性
uni-app(4.81)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | 8.0 | 1.0.0 | 12 | 1.0.0 | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.82)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
hl-hband-sdk
HBand / Veepoo 蓝牙手环 SDK 的 UniApp UTS 原生插件。业务侧只需 import * as HBand from '@/uni_modules/hl-hband-sdk',无需直接接触 Android AAR / iOS Framework。
支持平台:App Android、App iOS(需自定义基座或云打包)。H5 / 小程序 / HarmonyOS 不支持。
目录
使用前准备
1. 安装插件
将 uni_modules/hl-hband-sdk 放入项目,HBuilderX 识别为 UTS 插件。
2. 制作自定义调试基座
插件含原生 AAR / Framework,标准基座无法使用。菜单:运行 → 运行到手机或模拟器 → 制作自定义调试基座,编译成功后用自定义基座运行。
3. 系统权限
| 平台 | 权限 |
|---|---|
| Android | 蓝牙扫描/连接;Android 12 以下扫描 BLE 通常还需定位权限。AndroidManifest.xml 已声明 |
| iOS | 蓝牙、定位(部分设备扫描需要)。Info.plist 已声明用途说明 |
4. 导入方式(固定写法)
import * as HBand from '@/uni_modules/hl-hband-sdk'
不要导入 utssdk/app-android/index.uts 等平台文件。
5. iOS 特别注意
- 必须先
startScan()扫到设备,再connectDevice(mac, name)(SDK 依赖扫描得到的 peripheral)。 - 三方 Framework 已随插件携带;若遇旧版
pod install/UIKit报错,清理 UTS/iOS 编译缓存后重编基座。
5 分钟上手
import * as HBand from '@/uni_modules/hl-hband-sdk'
import { onUnmounted } from 'vue'
// 1. 初始化
HBand.initSDK()
// 2. 可选:看插件日志
HBand.enableDebugLog((level, tag, msg) => {
console.log(`[${level}] ${tag}: ${msg}`)
})
// 3. 扫描
HBand.startScan(
(device) => console.log('发现设备', device.name, device.mac, device.rssi),
() => console.log('扫描结束'),
(code, msg) => console.error('扫描失败', code, msg)
)
// 4. 连接 + 校验密码(默认密码多为 0000)
HBand.connectDevice(mac, name, (event) => {
console.log(event.status, event.message)
if (event.status == 'connected' || event.status == 'notifyReady') {
HBand.verifyPassword({ password: '0000', is24Hour: true }, (result) => {
if (result.code == 0) {
// 5. 校验成功后再读数据
HBand.readBattery(console.log)
HBand.readStep(console.log)
}
})
}
})
// 6. 页面退出时释放
onUnmounted(() => {
HBand.stopScan()
HBand.destroySDK()
})
新手易错点:
- 未做自定义基座 → 原生方法找不到。
- 未
verifyPassword就调业务指令 → 返回未连接或设备未就绪。 - 测量、OTA、表盘传输、历史同步等长流程并发调用 → 请串行排队。
- 每个回调先判断
result.code == 0再读result.data。 - iOS 未先扫描就连接 → 连接失败。
标准调用流程
initSDK()
→ startScan() 发现设备
→ connectDevice(mac, name)
→ 收到 connected / notifyReady
→ verifyPassword({ password, is24Hour })
→ 收到 verified(或 verifyPassword 回调 code==0)
→ readBattery / startMeasure / syncData / 高级 API ...
→ 页面卸载:stopScan() + destroySDK()
通用约定
HBandResult(多数指令的回调结构)
| 字段 | 类型 | 说明 |
|---|---|---|
code |
number | 0 成功;负数为插件错误;正数常为 SDK 响应码 |
message |
string | 人类可读描述 |
data |
object | null | 成功时的负载 |
HBandConnectionEvent(连接回调)
| status | 说明 |
|---|---|
connecting |
正在连接 |
connected |
BLE 已连接 |
notifyReady |
Android Notify 通道就绪 |
verified |
密码校验成功 |
disconnected |
断开 |
timeout |
连接超时 |
confirmTimeout |
设备端确认超时 |
bluetoothOff |
蓝牙关闭 |
firmwareUpdate |
iOS:检测到可升级固件 |
error |
其他错误 |
HBandDevice(扫描结果)
| 字段 | 说明 |
|---|---|
name |
广播名 |
mac |
Android=MAC;iOS=SDK 地址 |
rssi |
信号强度 |
manufacturerId |
厂商字段,可能为空 |
rawData |
原始广播信息 |
HBandMeasureEvent(实时测量 / 微体检等)
| 字段 | 说明 |
|---|---|
type |
测量类型 |
stage |
start / progress / data / success / fail / stop / complete |
value |
主测量值 |
progress |
进度 0–100 |
state |
SDK 状态字符串 |
data |
扩展字段 |
完整 API 列表
以下与 utssdk/interface.uts 一一对应。带 callback 的均为异步;无 callback 的为同步或 fire-and-forget。
一、初始化 / 扫描 / 连接(13 个)
| API | 参数 | 说明 |
|---|---|---|
initSDK() |
无 | 初始化 SDK,可重复调用 |
enableDebugLog(callback) |
(level, tag, message) => void |
接收插件日志 |
startScan(onDevice, onFinish, onError) |
设备/结束/错误回调 | 开始 BLE 扫描;onFinish、onError 可传 null |
stopScan() |
无 | 停止扫描 |
setConnectionConfirm(options) |
{ showConfirm, timeoutSeconds } |
设备端连接确认弹窗与超时 |
connectDevice(mac, name, callback) |
MAC、名称、连接事件回调 | 连接设备 |
disconnectDevice(callback) |
可 null |
断开连接 |
isDeviceConnected() |
无 | 返回 boolean |
getSDKInfo(callback) |
结果回调 | SDK 版本、平台、蓝牙/连接状态 |
getDeviceInfo(callback) |
结果回调 | 设备名、能力快照、设置缓存 |
renameDevice(name, callback) |
新名称 | 修改 BLE 广播名 |
verifyPassword(options, callback) |
{ password, is24Hour } |
校验密码并上报设备能力;密码空则按 0000 |
destroySDK() |
无 | 停止扫描、断开、释放监听 |
二、基础数据读写(4 个)
| API | 参数 | data 常见字段 |
|---|---|---|
readBattery(callback) |
— | batteryPercent、充电/低电状态 |
readStep(callback) |
— | step |
syncTime(is24Hour, callback) |
是否 24 小时制 | — |
syncPersonalInfo(info, callback) |
见下表 | 同步结果 |
HBandPersonalInfo:
| 字段 | 说明 |
|---|---|
sex |
male / female |
height |
cm |
weight |
kg |
age |
Android 用年龄 |
birthYear |
iOS 用出生年 |
stepGoal |
目标步数 0–60000 |
sleepGoal |
睡眠目标(分钟) |
三、语言 / 基础开关 / 通知(8 个)
| API | 说明 |
|---|---|
setLanguage(language, callback) |
zh / en / ja / ko / de / fr / es / pt / zhTw 等 |
readBaseFunction(type, callback) |
读单项 + 完整 settings 快照 |
setBaseFunction(type, enabled, callback) |
设置单项;Android 会尽量保留其他开关 |
readNotificationSetting(type, callback) |
读通知开关 |
setNotificationSetting(type, enabled, callback) |
设通知开关 |
sendNotification(message, callback) |
仅 Android 推送来电/短信/社交通知内容;iOS 返回 -5203 |
sendTextMessage(text, callback) |
文本传输到设备 |
syncData(options) |
历史/健康数据同步,见下文 |
readBaseFunction / setBaseFunction 常用 type:
metric、timeFormat、automaticHeartRate、automaticBloodPressure、findPhoneUi、stopwatch、oxygenLowRemind、wearDetection、automaticHrv、disconnectRemind、sos、ppg、musicControl、longpressUnlock、messageScreenLight、automaticTemperature、automaticBloodGlucose、stress、met(Android 梅脱)、ecgAlwaysOpen(iOS)
setPhoneControlListener(Android):一次注册同时监听来电控制与音乐键事件。
| event | 含义 |
|---|---|
rejectPhone / cliencePhone / appAnswerCall |
手环挂断 / 静音 / 请求接听 |
nextMusic / previousMusic / playMusic / pauseMusic / pauseAndPlayMusic |
手环音乐控制键 |
voiceUp / voiceDown |
手环音量键 |
knockNotify / sos |
敲击通知 / SOS 事件 |
listenerReady |
监听注册成功 |
配合 sendNotification({ type: 'call', ... }) 推送来电;收到音乐 event 后由 App 联动系统媒体播放 API。
通知 type:all、call、sms、wechat、qq、sina、facebook、twitter、***、line、instagram、telegram、messenger、other 等(Android 另支持 zalo、viber)。
sendNotification 参数:{ type, title, content, contactName, phoneNumber }
syncData options:
{
dataType: 'all', // 见平台差异表
dayNumber: 0, // 0=今天,1=昨天…
: (progress, state) => {},
onData: (dataType, data) => {},
onFinish: (result) => {}
}
| 平台 | dataType |
|---|---|
| Android | all / allHealth / sleep / origin / basic / temperature / oxygen / hrv |
| iOS | all / step / sleep / basic / oxygen / hrv / temperature |
四、实时测量 / 拍照 / 查找(8 个)
| API | 说明 |
|---|---|
startMeasure(type, callback, options?) |
启动测量;options.mode: 'public'(默认)或 'private'(血压/血糖私人模式) |
stopMeasure(type, callback, options?) |
停止测量 |
startCamera(onResult, onTakePhoto) |
遥控拍照;onTakePhoto(action) 中 action==2 表示设备触发拍照 |
stopCamera(callback?) |
退出拍照模式 |
findDevice(callback?) |
手机找手环 |
stopFindDevice(callback?) |
停止查找 |
setFindPhoneListener(callback) |
监听手环找手机 / 设备开关变化 |
exitFindPhone(callback?) |
App 通知手环退出找手机 |
startMeasure / stopMeasure 支持 type:
heartRate、bloodOxygen、bloodPressure、breath、fatigue、temperature、bloodGlucose、stress、hrv、gsr
五、闹钟 / 联系人 / SOS(6 个)
| API | 说明 |
|---|---|
manageAlarm(options, callback) |
闹钟 CRUD,见下 |
setAlarmChangeListener(callback) |
设备端修改闹钟时上报 |
manageContacts(operation, contacts, moveFromId, moveToId, callback) |
联系人 CRUD |
readSosCallTimes(callback) |
读 SOS 拨打次数 |
setSosCallTimes(times, callback) |
设 SOS 次数 |
setContactSos(contactId, enabled, callback) |
标记联系人为 SOS |
manageAlarm options:
| 字段 | 说明 |
|---|---|
alarmType |
legacy / scene / text |
operation |
read / add / update / delete |
alarm |
HBandAlarmItem,读操作时传 null |
HBandAlarmItem:id, hour, minute, enabled, repeatDays, singleDate, scene, content
manageContacts:
| operation | contacts | 说明 |
|---|---|---|
read |
null |
读取列表,结果在 data.contacts |
add |
[{ id, name, phoneNumber, isSos }] |
添加单个 |
addBatch |
数组 | 批量添加 |
delete |
[{ id, ... }] |
删除 |
deleteAll |
null |
清空 |
move |
— | 配合 moveFromId、moveToId 排序 |
六、天气 / 世界时钟(4 个)
| API | 说明 |
|---|---|
readWeatherConfig(callback) |
读天气开关、单位、CRC |
setWeatherConfig(config, callback) |
{ enabled, unit: 'celsius'|'fahrenheit', crc } |
syncWeatherData(payload, callback) |
{ crc, city, updatedAt, hourly[], daily[] } |
manageWorldClock(operation, clocks, moveFromId, moveToId, callback) |
世界时钟 CRUD;clock 项:{ id, cityName, timeZoneOffset } |
七、运动模式(4 个)
| API | 说明 |
|---|---|
syncSportHistory(options) |
同步运动历史;onProgress / onHead / onItem / onFinish |
controlDeviceSport(action, sportType, callback) |
readState / start / stop / startMulti |
controlAppSport(action, sportType, callback) |
start / pause / resume / stop / read |
setSportControlListener(callback) |
设备主动上报运动数据 |
八、表盘 / OTA / 杰理认证(6 个)
| API | 说明 |
|---|---|
readDialInfo(callback) |
当前表盘、市场表盘列表等 |
setActiveDial(index, dialType, callback) |
切换表盘;dialType: default / market / photo 等 |
transferDial(options) |
表盘/AGPS 文件传输,见下 |
checkFirmwareUpdate(callback) |
检查固件更新 |
startOtaUpgrade(options) |
OTA 升级 |
startJlDeviceAuth(callback) |
杰理 JL 设备认证(OTA/表盘前置,Android 已实现) |
transferDial options:{ dialType, platform, filePath, screenIndex?, photoLayout?, ?, onFinish? }
dialType 扩展:agps / g15_profile / g15_theme1 / g15_theme2 / g15_qrcode / market / server / photo / custom
startOtaUpgrade options:{ platform, firmwarePath, ?, onFinish? }
platform:Android jl / nordic / nrf / zk;iOS remote / local
九、蓝牙通话 BT(5 个)
| API | 说明 |
|---|---|
registerBtCallListener(callback) |
BT 来电/连接状态事件 |
readBtInfo(callback) |
读 BT 地址、连接状态 |
connectBt(callback) |
连接 BT 音频 |
disconnectBt(callback) |
断开 BT |
setBtSwitch(enabled, options, callback) |
BT 开关;options 可 null |
十、ECG 心电(6 个)
| API | 说明 |
|---|---|
startEcgMeasure(options, callback) |
{ needCurve, multiLead } 开始 ECG |
stopEcgMeasure(callback) |
停止 |
readEcgHistory(date, dataType, callback) |
历史;date 如 yyyy-MM-dd |
setEcgReportListener(callback) |
设备主动上报 ECG |
readEcgChestMode(callback) |
读胸口模式 |
setEcgChestMode(enabled, callback) |
设胸口模式 |
十一、设备设置 / 校准 / 历史 / 微体检(20 个)
| API | 说明 |
|---|---|
readDeviceSetting(type, callback) |
读设备设置 |
setDeviceSetting(type, config, callback) |
写设备设置 |
readManualMeasureHistory(options, callback) |
手动测量存储历史 |
readPrivateMeasureMode(type, callback) |
私人测量模式 |
setPrivateMeasureMode(type, config, callback) |
设置私人模式 |
cancelPrivateMeasureCalibration(type, callback) |
取消校准;type: bloodPressure |
readAutoMeasureConfig(callback) |
自动测量时段/间隔(Android 为主) |
setAutoMeasureConfig(config, callback) |
设置自动测量配置 |
readHealthHistory(type, date, callback) |
按日历史 |
startMicroExam(callback) |
开始微体检 |
stopMicroExam(callback) |
停止微体检 |
controlMusic(action, data, callback) |
音乐控制,见下 |
queryImageSize(callback) |
查询设备图文尺寸 |
transferImage(options) |
推送图片到设备 |
resetDevice(mode, callback) |
恢复出厂 / 清除数据;mode: clear(默认)| reset |
readApneaRemind(callback) |
读取呼吸暂停(血氧)提醒配置 |
setApneaRemind(config, callback) |
设置呼吸暂停提醒 |
readDoNotDisturb(callback) |
读免打扰(标准 SDK 无协议时返回 -7072) |
setDoNotDisturb(config, callback) |
设免打扰(同上) |
readConnectedRssi(callback) |
读取已连接设备蓝牙 RSSI |
readDeviceSetting / setDeviceSetting 的 type:
raiseHand、brightness、screenTimeout、heartAlarm、screenStyle、healthReminder、longSit、femaleHealth、lowPower、countDown、antiLoss、bpFunction、bloodOxygenNight、wearCheck
screenStyle也可通过readDialInfo/setActiveDial操作。
readManualMeasureHistory options:{ timestamp, dataType }
timestamp:秒级,只返回该时间之后的数据dataType:all/heartRate/bloodPressure/bloodOxygen/bloodGlucose/bloodComponents/temperature/healthGlance
readPrivateMeasureMode type:bloodPressure / bloodGlucose / bloodGlucoseMulti / bloodComponent / bloodAnalysis
readHealthHistory type:origin / oxygen / hrv / sleep / drink(Android)/ chanting
date:yyyy-MM-dd,或 dayNumber 字符串"0"(今天)/"1"(昨天);chanting可传秒级 timestamp 字符串
readApneaRemind / setApneaRemind(双端支持):
setApneaRemind 入参(未传字段使用默认值):
| 字段 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
是否开启 |
startHour |
22 |
生效开始小时 |
startMinute |
0 |
生效开始分钟 |
endHour |
8 |
生效结束小时 |
endMinute |
0 |
生效结束分钟 |
durationTime |
10 |
持续监测时长(分钟) |
remindTime |
5 |
提醒间隔(分钟) |
lowOxygenValue |
90 |
低血氧阈值 |
defaultTime |
true |
仅 iOS:是否使用设备默认时段 |
readApneaRemind / setApneaRemind 成功时 data 常见字段:
| 字段 | 说明 |
|---|---|
enabled |
是否开启(openStatus == 1) |
openStatus |
1 开启 / 2 关闭 |
startHour / startMinute / endHour / endMinute |
生效时段 |
durationTime |
持续监测时长(分钟) |
remindTime |
提醒间隔(分钟) |
lowOxygenValue |
低血氧阈值 |
status |
仅 Android:READ_SUCCESS / READ_FAIL / SETTING_SUCCESS / SETTING_FAIL / UNKONW |
rawData |
仅 Android:SDK 原始 toString() |
defaultTime |
仅 iOS:是否使用默认时段 |
失败时返回 -7081。
resetDevice mode:
| mode | 说明 |
|---|---|
clear(默认) |
清除设备数据,设备可能自动关机并断开 |
reset |
冷启动复位,不丢数据 |
readConnectedRssi 成功时 data.rssi 为当前连接信号强度。
controlMusic action:play / pause / next / previous / volumeUp / volumeDown / readVolume / setVolume
十二、身体成分 / 血液成分 / 健康监测 / 密码 / 来电(12 个)
| API | 说明 | |
|---|---|---|
startBodyCompositionMeasure(callback) |
开始身体成分测量 | |
stopBodyCompositionMeasure(callback) |
停止 | |
readBodyCompositionHistory(date, callback) |
历史,date: yyyy-MM-dd |
|
startBloodComponentMeasure(callback) |
开始血液成分(或走 invokeSpecialModule) | |
readBloodComponentHistory(date, callback) |
血液成分历史 | |
readHealthMonitor(type, callback) |
读自动健康监测开关 | |
setHealthMonitor(type, config, callback) |
设置;config: { enabled: boolean } |
|
readDevicePassword(callback) |
密码信息(建议从 verifyPassword 的 data 获取) | |
setDevicePassword(oldPassword, newPassword, callback) |
修改设备密码 | |
setPhoneControlListener(callback) |
监听手环来电+音乐键;仅 Android | 见上文 event 表 |
notifyPhoneCallState(state, callback) |
通知手表通话状态 idle/offhook;仅 Android |
|
invokeSpecialModule(module, action, params, callback) |
专项设备能力,见下节 |
readHealthMonitor / setHealthMonitor 的 type:
heartRate / bloodOxygen / bloodPressure / temperature / bloodGlucose / stress / hrv
(也支持别名如 heart、oxygen、glucose)
分模块示例
基础读写
HBand.readBattery((r) => {
if (r.code == 0) console.log('电量', r.data['batteryPercent'])
})
HBand.syncPersonalInfo({
sex: 'male', height: 170, weight: 65,
age: 30, birthYear: 1996, stepGoal: 8000, sleepGoal: 480
}, console.log)
HBand.setBaseFunction('automaticHeartRate', true, console.log)
实时测量(含私人模式)
HBand.startMeasure('bloodPressure', (e) => {
console.log(e.stage, e.value, e.progress)
}, { mode: 'private' })
HBand.stopMeasure('bloodPressure', console.log, { mode: 'private' })
闹钟与联系人
HBand.manageAlarm({
alarmType: 'scene',
operation: 'add',
alarm: {
id: 1, hour: 7, minute: 30, enabled: true,
repeatDays: '0111110', singleDate: null, scene: 1, content: null
}
}, console.log)
HBand.manageContacts('add', [{
id: 1, name: '张三', phoneNumber: '***', isSos: false
}], null, null, console.log)
表盘与 OTA
HBand.readDialInfo(console.log)
HBand.setActiveDial(0, 'default', console.log)
HBand.transferDial({
dialType: 'photo', // 或 g15_profile / g15_theme1 / g15_theme2 / g15_qrcode / agps
platform: 'jl',
filePath: '/storage/emulated/0/Download/dial.bin',
screenIndex: 0,
photoLayout: null,
: (p, stage) => console.log(stage, p),
onFinish: console.log
})
HBand.startOtaUpgrade({
platform: 'jl', // nordic / nrf / zk
firmwarePath: '/storage/emulated/0/Download/firmware.bin',
: (p, stage) => console.log(stage, p),
onFinish: console.log
})
HBand.startJlDeviceAuth((r) => {
if (r.code == 0) HBand.checkFirmwareUpdate(console.log)
})
来电与音乐键监听(Android)
// 一次注册,同时覆盖来电控制 + 手环音乐键
HBand.setPhoneControlListener((event) => {
if (event.event == 'rejectPhone' || event.event == 'cliencePhone') {
console.log('来电控制', event.event)
} else if (event.event == 'nextMusic' || event.event == 'playMusic') {
// 联动系统媒体 API:下一曲 / 播放等
console.log('音乐键', event.event)
}
})
// 推送来电到手环
HBand.sendNotification({
type: 'call',
title: '来电',
content: '***',
contactName: '张三',
phoneNumber: '***'
}, console.log)
ECG
HBand.startEcgMeasure({ needCurve: true, multiLead: false }, (e) => {
console.log(e.stage, e.progress, e.data)
})
HBand.stopEcgMeasure(console.log)
历史同步
HBand.syncData({
dataType: 'all',
dayNumber: 0,
: (p, s) => console.log(p, s),
onData: (type, data) => console.log(type, data),
onFinish: console.log
})
恢复出厂 / 呼吸暂停 / 免打扰
// 读取呼吸暂停(血氧)提醒配置
HBand.readApneaRemind((r) => {
if (r.code == 0) {
console.log('已开启', r.data['enabled'])
console.log('低血氧阈值', r.data['lowOxygenValue'])
}
})
// 设置呼吸暂停提醒(未传字段使用默认值,见上文表格)
HBand.setApneaRemind({
enabled: true,
startHour: 22,
startMinute: 0,
endHour: 8,
endMinute: 0,
durationTime: 10,
remindTime: 5,
lowOxygenValue: 90
}, console.log)
// 免打扰:标准 SDK 无专用协议,双端返回 -7072,请在 App 端按时段拦截 sendNotification
HBand.readDoNotDisturb(console.log)
// 清除设备数据(慎用,设备可能关机并断开)
HBand.resetDevice('clear', console.log)
invokeSpecialModule 专项能力
统一入口,适合定制项目设备:
HBand.invokeSpecialModule('jh58', 'readHistory', {
date: '2026-06-12 10:00:00',
testMode: 'MODE1'
}, console.log)
| module | 典型 action | 平台 | 说明 |
|---|---|---|---|
4g |
read / set / clear |
双端 | 4G 服务器配置;set 支持 host/port、userName/password、switch4g、switchUpload、reportInterval |
jh58 |
readStatus / setStatus / readHistory / startRealtime / stopRealtime |
双端 | PPG 原始数据;readHistory 需 date 或 timestamp、testMode: MODE1/MODE2 |
qx17 |
start / stop / continue / setVibration / setListener |
双端 | 匹克球 IMU/GPS/心率采集 |
qh15 |
setProtection / readStep / getTimestamp |
双端 | QH15 健康数据 |
je136p / tcm |
set / startTest |
双端 | 中医定制数据 |
microExam / healthGlance |
start / stop |
双端 | 微体检(也可用 startMicroExam) |
healthAssist |
read / set |
双端 | 健康辅助评估 |
g08w |
subscribe / setAlert |
双端 | PPG 光数据订阅 |
magnetic |
open / close / setGlobal |
双端 | 磁疗;open/close 参数:type、level、duration |
zt163 |
set / read |
双端 | 常灭屏 |
gnss |
setListener |
双端 | GNSS 定位 |
gpsSport |
setTimezone / setKaaba / readChanting |
双端 | App GPS 上报 / 克尔白 / 诵经 |
g15 |
sendQrCode / sendMsg |
双端 | G15 二维码与消息 |
institution |
cmToLbcm / kgToLbkg / kmToLbkm |
Android | 公英制单位换算 |
bloodComponent |
start / stop / readCalibration / setCalibration |
双端 | 血液成分 |
rrInterval |
read |
双端 | RR 间期;params.day: 0/1/2 |
jl |
auth |
Android | 杰理认证(同 startJlDeviceAuth) |
ai |
setNetworkStatus / subscribeOpus |
iOS | AI 问答相关;Android 需厂商 SDK |
tapTest / sosCustom / f2debug |
— | — | 定制/调试能力,按需扩展 |
具体 params 以设备 SDK 文档为准;失败常见 code: -7101。
错误码
| 范围 | 含义 |
|---|---|
-1001 ~ -1005 |
蓝牙权限、状态、扫描、连接、断开 |
-2001 ~ -2003 |
密码校验、连接确认超时 |
-3001 ~ -3005 |
电量、步数、时间、个人信息 |
-4001 ~ -4002 |
实时测量 |
-5001 ~ -5007 |
拍照、查找设备、找手机 |
-5201 ~ -5207 |
通知、文本传输 |
-5301 ~ -5303 |
设备重命名 |
-6001 ~ -6002 |
历史数据同步 |
-7001 |
设备未连接 |
-7010 ~ -7040 |
闹钟、联系人、天气、运动 |
-7050 ~ -7051 |
表盘、OTA |
-7060 |
BT 通话 |
-7070 |
设备设置类型不支持 |
-7072 |
免打扰(标准 SDK 无协议,双端均返回) |
-7080 |
恢复出厂指令异常、音乐控制失败 |
-7081 |
呼吸暂停提醒读写失败、图片传输失败 |
-7082 ~ -7092 |
身体成分、密码等 |
-7101 |
专项模块未实现或设备不支持 |
Demo 与延伸阅读
| 资源 | 路径 | 内容 |
|---|---|---|
| 基础 Demo | pages/hband-demo/index.vue |
扫描、连接、密码、基础读写、测量、同步 |
| 高级 Demo | pages/hband-advanced-demo/index.vue |
闹钟、联系人、天气、表盘、OTA、ECG、专项模块 |
| API 参数详解 | docs/hband-sdk-api-reference.md |
每项 API 参数与返回字段 |
| 集成示例 | docs/hband-sdk-integration-demo.md |
完整生命周期示例代码 |
| 能力对照表 | docs/hband-sdk-capability-map.md |
SDK 能力与插件封装状态 |
| 接口声明 | utssdk/interface.uts |
类型与函数签名源码 |
开发与扩展约定
- 业务只依赖
@/uni_modules/hl-hband-sdk,不引用utssdk/app-android/*等平台文件。 - 新增 API 顺序:
interface.uts→app-android/index.uts+Hybrid.kt/HybridModules.kt→ iOS 对应文件。 - 原生层统一返回
HBandResult,不把 SDK 原始 listener 泄漏到 JS。 - 长流程(测量、同步、OTA、表盘)串行调用;页面
onUnload调用destroySDK()。 - 不同设备固件能力差异大,务必先读
verifyPassword返回的data.capability再调高级功能。
平台与环境(技术附录)
| 平台 | 支持 | 说明 |
|---|---|---|
| App Android | ✅ | minSdkVersion 21;依赖 utssdk/app-android/libs 内 Veepoo AAR |
| App iOS | ✅ | 仅 arm64;VeepooBleSDK.framework + 配套 Framework |
| H5 / 小程序 / HarmonyOS | ❌ | 无 BLE 原生 SDK |

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 276
赞赏 2
下载 12383866
赞赏 1928
赞赏
京公网安备:11010802035340号