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
必填参数
| 属性 | 类型 | 说明 |
|---|---|---|
sdkType | TSSDKType | 设备平台类型,必须与实际硬件匹配 |
license | NSString * | 32 位许可证密钥,由 TopStep 提供 |
SDK 类型(TSSDKType)
| 枚举值 | 说明 |
|---|---|
eTSSDKTypeFIT | 瑞昱(Realtek)系列设备(默认值) |
eTSSDKTypeFW | 恒玄(BES)系列设备 |
eTSSDKTypeTPB | 拓步(TPB)系列设备 |
可选参数
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
isDevelopModel | BOOL | NO | 开发模式,启用后输出详细日志(生产环境关闭) |
isSaveLogEnable | BOOL | NO | 是否将日志写入文件系统 |
logFilePath | NSString * | nil | 自定义日志文件路径,nil 使用默认路径 |
logLevel | TopStepLogLevel | Debug | 最低输出日志等级(Debug / Info / Warning / Error) |
isCheckBluetoothAuthority | BOOL | NO | 操作前检查蓝牙权限,推荐生产环境开启 |
maxScanSearchDuration | NSInteger | 15 | 最大扫描时长(秒),0 使用默认值 |
maxConnectTimeout | NSInteger | 45 | 最大连接超时(秒),0 使用默认值 |
maxTryConnectCount | NSInteger | 10 | 断线后最大重连次数 |
autoConnectWhenAppLaunch | BOOL | NO | 应用启动时自动重连上次设备 |
第 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 位)或网络验证失败
}
}];
注意事项
initSDKWithConfigOptions:completion:必须在主线程调用license长度必须恰好为 32 位,且只含字母和数字- 初始化完成回调在主线程执行
- 生产环境请将
isDevelopModel设为NO,避免性能损耗 - 如果支持多种设备平台,需要分别初始化对应平台的 SDK 实例