{IDO设备绑定接口说明}
1.功能概述
提供查询绑定状态、发起绑定和解绑、监听绑定模式能力。
2.接口能力
1.查询绑定状态:
1.1 功能概括:
无
1.2 API ID:
Future<bool> get isBinded;
1.3 API参数说明:
@return:isBinded 是否绑定标志,bool类型,false:非绑定状态,true:绑定状态。
2.查询当前是否在绑定中:
2.1 功能概括:
绑定中,切换设备将受到限制。
2.2 API ID:
bool get isBinding;
2.3 API参数说明:
@return:isBinding 是否在绑定中的标志,bool类型,false:不在绑定中,true:绑定中。
3.发起绑定:
3.1 功能概括:
发起绑定,绑定成功后通过回调返回设备的设备信息和功能表信息。////TODO
3.2 API ID:
/// 发起绑定
/// osVersion: 系统版本 (取主版本号)
/// userId: 用户ID,最大14字节(超过14字节会提取后14字节)
/// encryptedAuthData: 加密授权数据回调(仅支持的设备才会触发该回调,没有换手机绑定场景,可忽略)
Stream<BindStatus> startBind(
{required int osVersion,
required BindValueCallback<IDODeviceInfo> deviceInfo,
required BindValueCallback<IDOFunctionTable> functionTable,
String? userId,
BindValueCallback<IDOEncryptedAuthData>? encryptedAuthData});
3.3 API参数说明:
@param:osVersion 系统版本,取主版本号。
@param:deviceInfo 发起绑定后,回调绑定设备的设备信息。
@param:functionTable 发起绑定后,回调绑定设备的功能表信息。
@param:userId 用户ID,最大14字节(超过14字节会提取后14字节)。
@param:encryptedAuthData 加密授权数据回调(仅支持的设备才会触发该回调,详见 IDOEncryptedAuthData 模型说明)。
4.发起解绑:
4.1 功能概括:
对指定MAC的设备发起解绑,可强制解绑设备。
4.2 API ID:
Future<bool> unbind({required String macAddress, bool isForceRemove = false});
4.3 API参数说明:
@param:macAddress MAC地址。
@param:isForceRemove 是否强制解绑设备,设备无响应也删除,true强制解绑和删除设备,默认为false。
5.发起授权码绑定:
5.1 功能概括:
无。
5.2 API ID:
Stream<bool> setAuthCode(String code, int osVersion);
5.3 API参数说明:
@param:code 配对码
@param:osVersion 系统版本(取主版本号)
6.设置加密授权数据:
6.1 功能概括:
仅限支持设备有效。注意:需要在libManager.markConnectedDeviceSafe(...)调用前执行,且isBinded=true有效。
6.2 API ID:
Future<bool> setEncryptedAuthData(String macAddress, IDOEncryptedAuthData data);
6.3 API参数说明:
@param:macAddress MAC地址。
@param:data 加密授权数据,详见 IDOEncryptedAuthData 模型说明。
7.注册更新模式监听回调:
7.1 功能概括:
监听目前的更新模式回调注册方法。////TODO
7.2 API ID:
StreamSubscription listenUpdateSetModeNotification(
void Function(int mode) func);
7.3 API参数说明:
@param:func 回调方法,mode包括:0 没有绑定, 1 已经绑定, 2 升级模式, 3 重连, 4 泰凌微
8. IDOEncryptedAuthData 模型说明:
8.1 功能概括:
加密授权数据模型,用于在绑定过程中或连接前同步加密授权数据。
8.2 模型定义:
class IDOEncryptedAuthData {
/// 授权数据(12 字节)
final List<int> authData;
/// 加密方式版本(0: 原有,0x10: 新版)
final int encryptedVersion;
/// 授权数据长度
final int authLength;
}
8.3 字段说明:
- authData:
List<int>类型,授权数据内容,固定为 12 字节。 - encryptedVersion:
int类型,加密版本。0表示旧版本,0x10表示新版本。 - authLength:
int类型,授权数据内容的长度(通常为 12)。