{IDO标准化Flutter接口说明}
Flutter API:
1.下发基础事件
1.1 功能概括:
APP可以通过这个接口下发指定事件到设备,事件包括设置指令、获取指令、通知指令、控制指令等,实现APP与设备交互基础功能。
1.2 API ID:
Stream<CmdResponse> send({required CmdEvtType evt, String? json = '{}'});
1.3 API参数说明:
@Param:evt 基础事件号
@Param:json 基础事件项内容,JSON字符串格式
事件号说明和对应事件项内容说明跳转到 => [IDO基础事件字段说明](
2.蓝牙响应数据总入口
2.1 功能概括:
蓝牙库将接收到的字节数据通过这个接口解析,完成后以Json字符串的格式将结果通过注册的函数回调给APP。
2.2 API ID:
void receiveDataFromBle(Uint8List data, String? macAddress, int type);
2.3 API参数说明:
@Param:data 字节数据
@Param:macAddress 设备MAC地址
@Param:type 通道类型,0:BLE 1:SPP
3.初始化C库 (废弃)
3.1 功能概括:
初始化C库,完成C库的定时器创建,解析函数的注册,发送队列的创建的功能,创建示例的时候调用。
3.2 API ID:
Future<bool> initClib();
3.3 API参数说明:
无
4.设置C库日志模式(废弃)
4.1 功能概括:
设置C库日志等级,DEBUG为调试模式;RELEASE线上版本,对日志的输出做了优化。
4.2 API ID:
void setClibRunMode({required bool isDebug});
4.3 API参数说明:
@Param:isDebug 日志模式,true:调试模式 false:发布版本
4.注册协议库(新增)
4.1 功能概括:
注册协议库,内置初始化C库,完成C库的定时器创建,解析函数的注册,发送队列的创建的功能,
需在使用libManager前注册。
4.2 API ID:
static Future<bool> register({
bool outputToConsole = false,
bool outputToConsoleClib = false,
bool isReleaseClib = true}
4.3 API参数说明:
@Param:outputToConsole log打印到控制台
@Param:outputToConsoleClib c库log打印到控制台
@Param:isReleaseClib c库运行模式(release只打印重要log)
5.注册蓝牙数据发送函数
5.1 功能概括:
APP调用下发基础事件接口send(evt,json)后,C库通过注册的蓝牙发送函数将转换好的字节数据上报。
5.2 API ID:
void registerWriteDataToBle(void Function(CmdRequest data) func);
5.3 API参数说明:
@Param:func 蓝牙发送函数
4.蓝牙数据发送完成
6.1 功能概括:
C库通过蓝牙数据发送函数上报的数据,通过蓝牙发送完成时调用。
6.2 API ID:
void writeDataComplete();
6.3 API参数说明:
无
7.标记设备已连接(蓝牙连接时调用)
7.1 功能概括:
连接时标记设备已连接。若支持加密授权方案,需在调用此接口前,先通过 deviceBind.setEncryptedAuthData(...) 设置加密授权数据。
7.2 API ID:
Future<bool> markConnectedDeviceSafe({required String uniqueId,required IDOOtaType otaType,required bool isBinded,String? deviceName = ''});
7.3 API参数说明:
@Param:uniqueId (安卓:当前连接设备的mac地址),iOS(当前连接设备的mac地址或uuid)
@Param:otaMode 设置ota模式
@Param:isBinded 绑定状态
@Param:deviceName 设备名称
8.标记设备已断开(蓝牙断开时调用)
8.1 功能概括:
连接时标记设备已断连。
8.2 API ID:
Future<bool> markDisconnectedDevice({String? macAddress, String? uuid});
8.3 API参数说明:
@Param:macAddress 当前断开连接设备的mac地址
@Param:uuid
9.清除所有待执行任务
9.1 功能概括:
清除所有执行的任务。
9.2 API ID:
void dispose();
9.3 API参数说明:
无
11.文件传输工具入口
11.1 功能概括:
提供传输文件的能力。
11.2 API ID:
IDOFileTransfer get transFile;
11.3 API参数说明:
跳转到文件传输工具接口说明 => IDO文件传输接口说明
12.查询是否处于已连接状态
12.1 功能概括:
SDK内部使用。
12.2 API ID:
bool get isConnected;
12.3 API参数说明:
@Param:isConnected 已连接标志,false:未连接,true:已连接////TODO
13.查询是否处于连接中状态
13.1 功能概括:
切换设备会受限制,在连接中状态不能切换设备。
13.2 API ID:
bool get isConnecting;
13.3 API参数说明:
@Param:isConnecting 连接中标志,false:未在连接中状态,true:连接中。
14.查询是否处于绑定中状态
14.1 功能概括:
切换设备会受限制,在绑定中状态不能切换设备。
14.2 API ID:
bool get isBinding;
14.3 API参数说明:
@Param:isBinding 绑定中标志,false:未在绑定中状态,true:绑定中。
15.查询是否处于执行快速配置中状态
15.1 功能概括:
执行快速配置期间,外部指令将直接返回失败。
15.2 API ID:
bool get isFastSynchronizing;
15.3 API参数说明:
@Param:isFastSynchronizing 快速配置中标志,false:未在快速配置状态中,true:快速配置中。
16.查询OTA类型
16.1 功能概括:
无
16.2 API ID:
IDOOtaType get otaType;
16.3 API参数说明:
@Param:otaType Ota状态,包括:
enum IDOOtaType {
none = 0, /// 无升级
telink = 1, /// 泰凌微设备OTA
nordic = 2, /// nordic设备OTA
}
17.查询当前连接的设备MAC地址
17.1 功能概括:
无
17.2 API ID:
String get macAddress;
17.3 API参数说明:
@Param:macAddress 当前设备的MAC地址,字符串,未标记为已连接时,将固定返回"UNKNOWN"
18.功能表入口
18.1 功能概括:
提供查询、刷新、清除功能表的能力。
18.2 API ID:
IDOFunctionTable get funTable;
18.3 API参数说明:
跳转到功能表接口说明 => IDO功能表接口说明
19.数据同步入口
19.1 功能概括:
提供查询数据同步状态、开启数据同步及结束数据同步的能力。
19.2 API ID:
IDOSyncData get syncData;
19.3 API参数说明:
跳转到数据同步接口说明 => IDO数据同步接口说明
20.设备信息入口
20.1 功能概括:
提供外部同步获取设备信息的能力。
20.2 API ID:
IDODeviceInfo get deviceInfo;
20.3 API参数说明:
跳转到设备信息接口说明 => IDO设备信息接口说明
21.绑定设备入口
21.1 功能概括:
提供查询绑定状态、发起绑定和解绑、设置加密授权数据、监听绑定模式的能力。
21.2 API ID:
IDODeviceBind get deviceBind;
21.3 API参数说明:
跳转到设备绑定接口说明 => IDO设备绑定接口说明
22.消息图标入口
22.1 功能概括:
提供设置国家编码、缓存服务器地址、APP Key、语言成员接口,提供查询更新图标状态、APP包名、获取&删除本地沙盒缓存、下发应用图标接口的能力。
22.2 API ID:
IDOMessageIcon get messageIcon;
22.3 API参数说明:
跳转到消息图标接口说明 => IDO消息图标接口说明
23.数据交换入口
23.1 功能概括:
提供发起数据交换、监听BLE设备的回复及BLE设备发起的数据交换的能力。
23.2 API ID:
IDOExchangeData get exchangeData;
23.3 API参数说明:
跳转到数据交换接口说明 => IDO数据交换接口说明
24.设备日志入口
24.1 功能概括:
提供查询是否支持获取固件日志接口,查询日志目录地址,开始启动获取日志和取消获取日志的能力。
24.2 API ID:
IDODeviceLog get deviceLog;
24.3 API参数说明:
跳转到设备日志接口说明 => IDO设备日志接口说明
25.其他工具接口
25.1 功能概括:
提供查询是否支持获取固件日志接口,查询日志目录地址,开始启动获取日志和取消获取日志的能力。////TODO
25.2 API ID:
IDOTool get tools;
25.3 API参数说明:
跳转到工具接口说明 => IDO工具接口说明
26.来电提醒&消息入口
26.1 功能概括:
提供通知设备来电提醒和消息提醒(v2)的能力。
26.2 API ID:
IDOCallNotice get callNotice;
26.3 API参数说明:
跳转到来电提醒和消息提醒的接口说明 => IDO来电提醒和消息提醒接口说明
27.协议库缓存入口
27.1 功能概括:
提供查询log、alexa、设备缓存根目录,导出日志,加载设备功能表和连接过的设备列表信息的能力。
27.2 API ID:
IDOCache get cache;
27.3 API参数说明:
跳转到协议库缓存的接口说明 => IDO协议库缓存接口说明
28.log初始化
28.1 功能概括:
提供设置log日志打印,写文件权限和日志等级的能力。
28.2 API ID:
static Future<bool> initLog(
{bool outputToConsole = true}) async {
return _IDOProtocolLibManager.initLog(
writeToFile: true,
outputToConsole: outputToConsole,
logLevel: LoggerLevel.verbose);
}
28.3 API参数说明:
@param:outputToConsole bool类型,是否打印到控制台,true:打印,false:不打印。
29.监听协议库状态通知
29.1 功能概括:
提供监听状态通知的能力,监听协议库状态通知。
29.2 API ID:
StreamSubscription listenStatusNotification(
void Function(IDOStatusNotification status) func);
29.3 API参数说明:
@return:回调状态,包括:
enum IDOStatusNotification {
protocolConnectCompleted = 0, /// 协议库完成蓝牙库桥接,此时缓存数据已经初始化
functionTableUpdateCompleted = 1, /// 功能表获取完成
deviceInfoUpdateCompleted = 2, /// 设备信息获取完成
deviceInfoFwVersionCompleted = 3, /// 三级版本获取完成
unbindOnAuthCodeError = 4, /// 绑定授权码异常,设备强制解绑
unbindOnBindStateError = 5, /// 绑定状态异常,需要解绑 (本地绑定状态和设备信息不一致时触发)
fastSyncCompleted = 6, /// 快速配置完成
fastSyncFailed = 7, /// 快速配置失败,需业务层重新触发快速配置
deviceInfoBtAddressUpdateCompleted = 8, /// BT MacAddress获取完成
macAddressError = 9, /// 快速配置获取到的macAddress和markConnectedDevice传入的不一致时上报此错误
syncHealthDataIng = 10,/// 同步健康数据中
syncHealthDataCompleted = 11 /// 同步健康数据完成
}
30.监听设备通知/控制事件
30.1 功能概括:
提供监听手表/手环设备的通知事件、控制事件、快捷短信和固件错误码的能力。
30.2 API ID:
StreamSubscription listenDeviceNotification(
void Function(IDODeviceNotificationModel model) func);
30.3 API参数说明:
@return:IDODeviceNotificationModel 跳转到 => IDO设备通知/控制事件模型说明
31.查询Alexa是否登陆
31.1 功能概括:
无。
31.2 API ID:
bool get isLogin;
31.3 API参数说明:
@return:是否已登录标志,bool类型,fasle:未登录,true:已登录。
32.查询Alexa当前语言
32.1 功能概括:
无。
32.2 API ID:
AlexaLanguageType get currentLanguage;
32.3 API参数说明:
@return:返回alexa当前国家及语言,包括:
enum AlexaLanguageType {
german('de-DE') = 0, /// 德语
australia('en-AU') = 1, /// 英语 澳大利亚
canadaEn('en-CA') = 2, /// 英语 加拿大
unitedKingdom('en-GB') = 3, /// 英语 英国
india('en-IN') = 4, /// 英语 印度
usa('en-US') = 5, /// 英语 美国
spainEs('es-ES') = 6, /// 西班牙语 西班牙
mexico('es-MX') = 7, /// 西班牙语 墨西哥
spainUs('es-US') = 8, /// 西班牙语 美国
frenchCanada('fr-CA') = 9, /// 法语 加拿大
frenchFrench('fr-FR') = 10, /// 法语 法国
hindiIndia('hi-IN') = 11, /// 印地语 印度
italianItaly('it-IT') = 12, /// 意大利语
japan('ja-JP') = 13, /// 日语
portugal('pt-BR') = 14; /// 葡萄牙语
}
33.指定Alexa代理 ////TODO
33.1 功能概括:
提供指定Alexa代理的能力。////TODO 功能作用待补充
33.2 API ID:
set delegate(IDOAlexaDelegate delegate)
33.3 API参数说明:
////TODO
34.注册Alexa
34.1 功能概括:
提供注册Alexa,初始化Alexa日志权限的能力。
34.2 API ID:
static Future<void> registerAlexa(
{required String clientId,
bool outputToConsole = true}) async {
await _IDOProtocolAlexa.initLog(
outputToConsole: outputToConsole);
await _IDOProtocolAlexa.registerAlexa(clientId: clientId);
}
34.3 API参数说明:
@param:clientId Alexa后台生成的ID。
@param:outputToConsole bool类型,是否打印Alexa log到控制台,true:打印,false:不打印。
35.Alexa切换语言
35.1 功能概括:
提供通知Alexa服务器切换当前语言的能力。
35.2 API ID:
static Future<bool> changeLanguage(AlexaLanguageType type)
35.3 API参数说明:
@param:type 设置的语言类型,包括:
enum AlexaLanguageType {
german('de-DE') = 0, /// 德语
australia('en-AU') = 1, /// 英语 澳大利亚
canadaEn('en-CA') = 2, /// 英语 加拿大
unitedKingdom('en-GB') = 3, /// 英语 英国
india('en-IN') = 4, /// 英语 印度
usa('en-US') = 5, /// 英语 美国
spainEs('es-ES') = 6, /// 西班牙语 西班牙
mexico('es-MX') = 7, /// 西班牙语 墨西哥
spainUs('es-US') = 8, /// 西班牙语 美国
frenchCanada('fr-CA') = 9, /// 法语 加拿大
frenchFrench('fr-FR') = 10, /// 法语 法国
hindiIndia('hi-IN') = 11, /// 印地语 印度
italianItaly('it-IT') = 12, /// 意大利语
japan('ja-JP') = 13, /// 日语
portugal('pt-BR') = 14; /// 葡萄牙语
}
36.1 功能概括:
无。
36.2 API ID:
Future<LoginResponse> authorizeRequest(
{required String productId, required CallbackPairCode func});
36.3 API参数说明:
@param:productId alexa后台注册的产品ID。
@param:func 回调函数,回调Alexa认证需要打开的url和userCode。
@return:LoginResponse 登录相应结果,包括:
enum LoginResponse {
successful = 0, /// 成功
failed = 1, /// 失败
timeout = 2, /// 超时
}
37.Alexa停止登录
37.1 功能概括:
提供结束当前执行中的相关登录操作的能力。
37.2 API ID:
void stopLogin();
37.3 API参数说明:
无。
38.Alexa退出登录
38.1 功能概括:
无。
38.2 API ID:
void logout();
38.3 API参数说明:
无。
39.注册监听Alexa登录状态
39.1 功能概括:
提供注册监听Alexa的登录状态的能力。
39.2 API ID:
StreamSubscription listenLoginStateChanged(
void Function(LoginState state) func);
39.3 API参数说明:
@return:回调登录状态,包括:
enum LoginState {
logging = 0, /// 登录中
logined = 1, /// 已登录
logout = 2, /// 未登录
}
40.注册监听Alexa语音状态
40.1 功能概括:
提供注册监听手环/手表的传输语音状态的能力。
40.2 API ID:
StreamSubscription listenVoiceStateChanged(
void Function(VoiceState state) func);
40.3 API参数说明:
@return:回调语音状态,包括:
enum VoiceState {
none = 0, /// 无状态
ready = 1, /// 准备
starting = 2, /// 开始
finished = 3, /// 结束
}