跳到主要内容

SDK 初始化

SDK 初始化是使用所有功能的前提。本文介绍如何配置 TSKitConfigOptions 并完成 SDK 的初始化。

第 1 步:导入头文件

AppDelegate.m 顶部导入:

#import <TopStepComKit/TopStepComKit.h>

第 2 步:创建配置项

application:didFinishLaunchingWithOptions: 中创建 TSKitConfigOptions

TSKitConfigOptions *options = [TSKitConfigOptions configOptionWithSDKType:eTSSDKTypeFIT
license:@"YOUR_32_CHAR_LICENSE_KEY"];
options.isDevelopModel = YES; // 开发期间开启,上线前设为 NO

必填参数

属性类型说明
sdkTypeTSSDKType设备平台类型,必须与实际硬件匹配
licenseNSString *32 位许可证密钥,由 TopStep 提供

SDK 类型(TSSDKType)

枚举值说明
eTSSDKTypeFIT瑞昱(Realtek)系列设备(默认值)
eTSSDKTypeFW恒玄(BES)系列设备
eTSSDKTypeTPB拓步(TPB)系列设备

可选参数

属性类型默认值说明
isDevelopModelBOOLNO开发模式,启用后输出详细日志(生产环境关闭)
isSaveLogEnableBOOLNO是否将日志写入文件系统
logFilePathNSString *nil自定义日志文件路径,nil 使用默认路径
logLevelTopStepLogLevelDebug最低输出日志等级(Debug / Info / Warning / Error)
isCheckBluetoothAuthorityBOOLNO操作前检查蓝牙权限,推荐生产环境开启
maxScanSearchDurationNSInteger15最大扫描时长(秒),0 使用默认值
maxConnectTimeoutNSInteger45最大连接超时(秒),0 使用默认值
maxTryConnectCountNSInteger10断线后最大重连次数
autoConnectWhenAppLaunchBOOLNO应用启动时自动重连上次设备

第 3 步:调用初始化方法

[[TopStepComKit sharedInstance] initSDKWithConfigOptions:options completion:^(BOOL isSuccess, NSError *error) {
if (isSuccess) {
TSLog(@"SDK 初始化成功");
} else {
TSLog(@"SDK 初始化失败: %@", error.localizedDescription);
}
}];

第 4 步:获取功能模块实例

初始化成功后,通过 [TopStepComKit sharedInstance] 直接访问各功能模块属性:

// 蓝牙连接
id<TSBleConnectInterface> bleConnector = [TopStepComKit sharedInstance].bleConnector;

// 设备查找
id<TSPeripheralFindInterface> peripheralFind = [TopStepComKit sharedInstance].peripheralFind;

// 心率
id<TSHeartRateInterface> heartRate = [TopStepComKit sharedInstance].heartRate;

// 数据同步
id<TSDataSyncInterface> dataSync = [TopStepComKit sharedInstance].dataSync;

// 血氧
id<TSBloodOxygenInterface> bloodOxygen = [TopStepComKit sharedInstance].bloodOxygen;

// 血压
id<TSBloodPressureInterface> bloodPressure = [TopStepComKit sharedInstance].bloodPressure;

// 睡眠
id<TSSleepInterface> sleep = [TopStepComKit sharedInstance].sleep;

// 表盘
id<TSPeripheralDialInterface> dial = [TopStepComKit sharedInstance].dial;

其余模块同理,完整属性列表见 TopStepComKit.h

推荐做法

[TopStepComKit sharedInstance] 本身即为单例,可在任意位置直接调用,无需额外保存引用。

完整示例

TSKitConfigOptions *options = [[TSKitConfigOptions alloc] init];
options.sdkType = eTSSDKTypeFIT;
options.license = @"abcd1234efgh5678ijkl9012mnop3456"; // 32位

// 日志配置(开发期间)
options.isDevelopModel = YES;
options.isSaveLogEnable = YES;
options.logLevel = TopStepLogLevelDebug;

// 连接配置
options.isCheckBluetoothAuthority = YES;
options.maxScanSearchDuration = 30;
options.maxConnectTimeout = 60;
options.maxTryConnectCount = 5;
options.autoConnectWhenAppLaunch = YES;

[[TopStepComKit sharedInstance] initSDKWithConfigOptions:options completion:^(BOOL isSuccess, NSError *error) {
if (isSuccess) {
TSLog(@"SDK 初始化成功,开始扫描设备...");
} else {
TSLog(@"SDK 初始化失败: %@", error.localizedDescription);
// 常见原因:license 格式错误(需要 32 位)或网络验证失败
}
}];

注意事项

  1. initSDKWithConfigOptions:completion: 必须在主线程调用
  2. license 长度必须恰好为 32 位,且只含字母和数字
  3. 初始化完成回调在主线程执行
  4. 生产环境请将 isDevelopModel 设为 NO,避免性能损耗
  5. 如果支持多种设备平台,需要分别初始化对应平台的 SDK 实例