{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.Alexa CBL授权

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,  /// 结束
}
Copyright © 2023-2024 IDO. All rights reserved. all right reserved,powered by Gitbook修订时间: 2026-04-14 16:32:09

results matching ""

    No results matching ""