当前位置: 首页 > news >正文

对外接口层

接口目录结构总览

1. 公共接口(Common)

头文件: softbus_common.h | softbus_error_code.h

常量定义

常量说明
NETWORK_ID_BUF_LEN65网络ID长度
UDID_BUF_LEN65UDID长度
UUID_BUF_LEN65UUID长度
BT_MAC_LEN18蓝牙MAC地址长度
IP_STR_MAX_LEN46IP地址最大长度(支持IPv6)
MAX_CAPABILITYDATA_LEN513能力数据最大长度
DISC_MAX_CUST_DATA_LEN513发现自定义数据最大长度
DISC_MAX_DEVICE_NAME_LEN65设备名最大长度
DISC_MAX_DEVICE_ID_LEN96设备ID最大长度

核心枚举类型

枚举说明
ConnectionAddrType连接地址类型 (WLAN/BR/BLE/ETH/SESSION/USB)
BleProtocolTypeBLE协议类型 (GATT/COC)
DiscoverMode发现模式 (PASSIVE=0x55 / ACTIVE=0xAA)
ExchangeMedium传输介质 (AUTO/BLE/COAP/USB)
ExchangeFreq交换频率 (LOW/MID/HIGH/SUPER_HIGH/EXTREME_HIGH)
DataBitMap能力位图 (hicall/profile/castPlus/dvKit/ddmp等)
DeviceType设备类型 (手机/平板/手表/TV/PC/音箱/车机等)
StrategyForBleBLE策略 (抑制/恢复发现)

核心结构体

结构体说明
ConnectionAddr设备连接地址(含BR/BLE/IP/Session地址联合体)
PublishInfo服务发布信息(publishId/mode/medium/freq/capability等)
SubscribeInfo服务订阅信息(subscribeId/mode/medium/freq/capability等)
DeviceInfo发现设备信息(devId/devType/devName/addr/capability等)
AuthHandle认证句柄(authId/type)

错误码模块

模块编号说明
DISC_SUB_MODULE_CODE1发现模块
CONN_SUB_MODULE_CODE2连接模块
AUTH_SUB_MODULE_CODE3认证模块
LNN_SUB_MODULE_CODE4组网模块
TRANS_SUB_MODULE_CODE5传输模块
IPCRPC_SUB_MODULE_CODE6IPC/RPC模块
PUBLIC_SUB_MODULE_CODE10公共模块

2. 发现接口(Discovery)

头文件: softbus_bus_center.h (发现相关部分)

注意:dsoftbus 的发现接口与组网接口合并在softbus_bus_center.h中,没有独立的发现头文件。

发现相关函数

函数说明
int32_t PublishLNN(const char *pkgName, const PublishInfo *info, const IPublishCb *cb)发布服务,同一局域网的设备可发现该服务
int32_t StopPublishLNN(const char *pkgName, int32_t publishId)停止发布服务
函数说明
int32_t RefreshLNN(const char *pkgName, const SubscribeInfo *info, const IRefreshCallback *cb)订阅服务(发现设备),发布该服务的设备信息将被上报
int32_t StopRefreshLNN(const char *pkgName, int32_t refreshId)停止订阅服务

发现相关回调

回调/结构体说明
IPublishCb.OnPublishResult(int publishId, PublishResult reason)发布结果回调
IRefreshCallback.OnDeviceFound(const DeviceInfo *device)发现设备回调
IRefreshCallback.OnDiscoverResult(int32_t refreshId, RefreshResult reason)订阅结果回调
PublishResult发布结果枚举 (SUCCESS/NOT_SUPPORT_MEDIUM/INTERNAL/UNKNOWN)
RefreshResult订阅结果枚举 (SUCCESS/NOT_SUPPORT_MEDIUM/INTERNAL/UNKNOWN)

发现流程

发布端: PublishLNN() → IPublishCb.OnPublishResult() ↓ 订阅端: RefreshLNN() → IRefreshCallback.OnDeviceFound() → IRefreshCallback.OnDiscoverResult()

3. 组网接口(Networking / Bus Center)

头文件: softbus_bus_center.h (组网相关部分)

组网核心函数

函数说明
int32_t JoinLNN(const char *pkgName, ConnectionAddr *target, OnJoinLNNResult cb, bool isForceJoin)加入局域网网络,将当前设备加入指定设备所在的LNN
int32_t LeaveLNN(const char *pkgName, const char *networkId, OnLeaveLNNResult cb)离开局域网网络

节点状态监听

函数说明
int32_t RegNodeDeviceStateCb(const char *pkgName, INodeStateCb *callback)注册节点状态变化回调
int32_t UnregNodeDeviceStateCb(INodeStateCb *callback)注销节点状态变化回调

INodeStateCb 回调事件:

事件掩码回调说明
EVENT_NODE_STATE_ONLINE (0x1)onNodeOnline设备上线
EVENT_NODE_STATE_OFFLINE (0x02)onNodeOffline设备下线
EVENT_NODE_STATE_INFO_CHANGED (0x04)onNodeBasicInfoChanged设备信息变化
EVENT_NODE_STATUS_CHANGED (0x08)onNodeStatusChanged运行状态变化
EVENT_NODE_STATE_NETWORK_CHANGED (0x10)onLocalNetworkIdChanged本地网络ID变化
EVENT_NODE_HICHAIN_PROOF_EXCEPTION (0x20)onHichainProofExceptionHichain证明异常
-onNodeDeviceTrustedChange信任关系变化

节点信息查询

函数说明
int32_t GetAllNodeDeviceInfo(const char *pkgName, NodeBasicInfo **info, int32_t *infoNum)获取所有在线设备基本信息
void FreeNodeInfo(NodeBasicInfo *info)释放设备信息内存
int32_t GetLocalNodeDeviceInfo(const char *pkgName, NodeBasicInfo *info)获取本设备基本信息
int32_t GetNodeKeyInfo(const char *pkgName, const char *networkId, NodeDeviceInfoKey key, uint8_t *info, int32_t infoLen)获取指定设备关键信息
int32_t SetNodeDataChangeFlag(const char *pkgName, const char *networkId, uint16_t dataChangeFlag)设置节点数据变化标志

NodeDeviceInfoKey 枚举: UDID/UUID/MASTER_UDID/BR_MAC/IP_ADDRESS/DEV_NAME/NETWORK_CAPABILITY/NETWORK_TYPE/BLE_OFFLINE_CODE/NODE_ADDRESS/P2P_IP_ADDRESS/DEVICE_SECURITY_LEVEL/DEVICE_SCREEN_STATUS/STATIC_NETWORK_CAP

时间同步

函数说明
int32_t StartTimeSync(const char *pkgName, const char *targetNetworkId, TimeSyncAccuracy accuracy, TimeSyncPeriod period, ITimeSyncCb *cb)启动时间同步
int32_t StopTimeSync(const char *pkgName, const char *targetNetworkId)停止时间同步

Meta Node 管理

函数说明
int32_t ActiveMetaNode(const char *pkgName, const MetaNodeConfigInfo *info, char *metaNodeId)激活元节点
int32_t DeactiveMetaNode(const char *pkgName, const char *metaNodeId)去激活元节点
int32_t GetAllMetaNodeInfo(const char *pkgName, MetaNodeInfo *infos, int32_t *infoNum)获取所有元节点信息

心跳与辅助

函数说明
int32_t ShiftLNNGear(const char *pkgName, const char *callerId, const char *targetNetworkId, const GearMode *mode)修改心跳参数并触发临时心跳
int32_t SetBleUuidLNN(uint16_t uuid)设置BLE UUID
int32_t SyncTrustedRelationShip(const char *pkgName, const char *msg, uint32_t msgLen)同步信任关系(仅DM使用)
int32_t SetDisplayName(const char *pkgName, const char *nameData, uint32_t len)设置本地设备显示名

4. 传输接口(Transport)

4.1 Session 接口 (v1)

头文件: session.h | trans_type.h

会话管理
函数说明
int CreateSessionServer(const char *pkgName, const char *sessionName, const ISessionListener *listener)创建会话服务端(最多32个)
int RemoveSessionServer(const char *pkgName, const char *sessionName)移除会话服务端
int OpenSession(const char *mySessionName, const char *peerSessionName, const char *peerNetworkId, const char *groupId, const SessionAttribute* attr)打开会话(异步)
void CloseSession(int sessionId)关闭会话
数据发送
函数说明
int SendBytes(int sessionId, const void *data, unsigned int len)发送字节数据
int SendMessage(int sessionId, const void *data, unsigned int len)发送消息
int SendStream(int sessionId, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param)发送流数据
int SendFile(int sessionId, const char *sFileList[], const char *dFileList[], uint32_t fileCnt)发送文件
会话信息查询
函数说明
int GetMySessionName(int sessionId, char *sessionName, unsigned int len)获取本端会话名
int GetPeerSessionName(int sessionId, char *sessionName, unsigned int len)获取对端会话名
int GetPeerDeviceId(int sessionId, char *networkId, unsigned int len)获取对端设备ID
int GetSessionSide(int sessionId)获取会话角色(0=服务端,1=客户端)
int GetSessionOption(int sessionId, SessionOption option, void* optionValue, uint32_t valueSize)获取会话选项
文件监听
函数说明
int SetFileReceiveListener(const char *pkgName, const char *sessionName, const IFileReceiveListener *recvListener, const char *rootDir)设置文件接收监听
int SetFileSendListener(const char *pkgName, const char *sessionName, const IFileSendListener *sendListener)设置文件发送监听
核心回调结构体
回调方法说明
ISessionListenerOnSessionOpened会话打开
OnSessionClosed会话关闭
OnBytesReceived接收字节数据
OnMessageReceived接收消息
OnStreamReceived接收流数据
OnQosEventQoS事件
IFileReceiveListenerOnReceiveFileStarted/OnReceiveFileProcess/OnReceiveFileFinished/OnFileTransError文件接收回调
IFileSendListenerOnSendFileProcess/OnSendFileFinished/OnFileTransError文件发送回调
核心类型
类型说明
SessionTypeTYPE_MESSAGE / TYPE_BYTES / TYPE_FILE / TYPE_STREAM
StreamTypeRAW_STREAM / COMMON_VIDEO_STREAM / COMMON_AUDIO_STREAM / VIDEO_SLICE_STREAM
LinkTypeWIFI_5G / WIFI_2G / P2P / BR / BLE / COC / HML 等
SessionAttribute会话属性(dataType/linkType/streamAttr/fastTransData)

4.2 Socket 接口 (v2)

头文件: socket.h | trans_type.h

Socket 生命周期
函数说明
int32_t Socket(SocketInfo info)创建Socket(最多15个)
int32_t Listen(int32_t socket, const QosTV qos[], uint32_t qosCount, const ISocketListener *listener)服务端监听
int32_t Bind(int32_t socket, const QosTV qos[], uint32_t qosCount, const ISocketListener *listener)客户端绑定(同步)
int32_t BindAsync(int32_t socket, const QosTV qos[], uint32_t qosCount, const ISocketListener *listener)客户端绑定(异步)
void Shutdown(int32_t socket)关闭Socket
数据发送
函数说明
int32_t SendBytes(int32_t socket, const void *data, uint32_t len)发送字节数据
int32_t SendBytesAsync(int32_t socket, uint32_t dataSeq, const void *data, uint32_t len)异步发送字节数据
int32_t SendMessage(int32_t socket, const void *data, uint32_t len)发送消息
int32_t SendStream(int32_t socket, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param)发送流数据
int32_t SendFile(int32_t socket, const char *sFileList[], const char *dFileList[], uint32_t fileCnt)发送文件
QoS
函数说明
int32_t EvaluateQos(const char *peerNetworkId, TransDataType dataType, const QosTV *qos, uint32_t qosCount)评估QoS质量
核心回调结构体
回调方法说明
ISocketListenerOnBindSocket绑定成功
OnShutdownSocket关闭
OnBytes接收字节数据
OnMessage接收消息
OnStream接收流数据
OnFile接收文件事件
OnQosQoS状态变化
OnError异步绑定错误
OnNegotiate协商回调
OnBytesSent数据发送完成
核心类型
类型说明
TransDataTypeMESSAGE / BYTES / FILE / RAW_STREAM / VIDEO_STREAM / AUDIO_STREAM / SLICE_STREAM / RAW_STREAM_ENCRYPED
SocketInfoSocket描述(name/peerName/peerNetworkId/pkgName/dataType)
QosTypeMIN_BW / MAX_LATENCY / MIN_LATENCY / RTT_LEVEL / MAX_BUFFER / MAX_IDLE_TIMEOUT / TRANS_RELIABILITY / TRANS_CONTINUOUS / REUSE_BE
ShutdownReasonUNKNOWN / LOCAL / PEER / LNN_CHANGED / CONN_CHANGED / TIMEOUT / SEND_FILE_ERR / RECV_FILE_ERR 等
FileEvent文件事件(发送/接收进度、完成、错误、路径更新等)

5. 内部接口(Inner Kits)

5.1 内部认证会话接口

头文件: inner_session.h

函数说明
int OpenAuthSession(const char *sessionName, const ConnectionAddr *addrInfo, int num, const char *mixAddr)打开身份认证会话
void NotifyAuthSuccess(int sessionId)通知身份认证成功

5.2 内部 Socket 扩展接口

头文件: inner_socket.h

函数说明
int32_t GetMtuSize(int32_t socket, uint32_t *mtuSize)获取Socket最大传输单元
int32_t DBinderGrantPermission(int32_t uid, int32_t pid, const char *socketName)授予Socket权限(DBinder)
int32_t DBinderRemovePermission(const char *socketName)移除Socket权限
int32_t DfsBind(int32_t socket, const ISocketListener *listener)DFS专用绑定
int32_t SetSocketOpt(int32_t socket, OptLevel level, OptType optType, void *optValue, int32_t optValueSize)设置Socket选项
int32_t GetSocketOpt(int32_t socket, OptLevel level, OptType optType, void *optValue, int32_t *optValueSize)获取Socket选项
int32_t PrivilegeShutdown(uint64_t tokenId, int32_t pid, const char *peerNetworkId)特权关闭会话(仅DMS可用)
int32_t RegisterRelationChecker(IFeatureAbilityRelationChecker *relationChecker)注册特性能力关系检查器

5.3 分布式文件服务接口

头文件: dfs_session.h

函数说明
int32_t GetSessionKey(int32_t sessionId, char *key, unsigned int len)获取会话密钥
int32_t GetSessionHandle(int32_t sessionId, int *handle)获取会话句柄
int32_t DisableSessionListener(int32_t sessionId)禁用会话监听

5.4 BLE 测距接口

头文件: ble_range.h

函数说明
int32_t RegBleRangeCb(const char *pkgName, IBleRangeCb *callback)注册BLE测距回调
int32_t UnregBleRangeCb(const char *pkgName)注销BLE测距回调
int32_t TriggerHbForMeasureDistance(const char *pkgName, const char *callerId, const HbMode *mode)触发心跳测量距离

5.5 数据级别接口

头文件: data_level.h

函数说明
int32_t RegDataLevelChangeCb(const char *pkgName, IDataLevelCb *callback)注册数据级别变化回调
int32_t UnregDataLevelChangeCb(const char *pkgName)注销数据级别变化回调
int32_t SetDataLevel(const DataLevel *dataLevel)设置分布式数据库数据级别

接口层级关系总图

http://www.jsqmd.com/news/1196712/

相关文章:

  • 长沙天心区测、除甲醛|维小达|CMA甲醛检测、新房除醛、工装除醛、板材源头除醛、全屋空气净化、老旧翻新祛异味、居家商用一站式空气养护服务 - 一点传媒
  • Mac上通过Homebrew与pip3一站式部署Jupyter生态
  • DeerFlow 深度解析:如何用多智能体架构精准答题
  • 2023年全国电赛H题信号分离装置:从加法器到DDS的硬件实现与频谱分析实战
  • 多维度评估 + 动态人才画像,精准定位高潜人才补齐组织能力短板
  • 《全域数学·工程应用大典》113–200讲完整总目录
  • 2026风扇及散热配件外贸独立站搭建公司怎么选?八项结构化评估指南,含零代码SAAS,源码定制交付
  • 2026年银川合同律师推荐怎么选?看这五点关键不踩雷 - 本地品牌推荐
  • 飞行动力学 - 纵向静稳定性剖析:从部件贡献到设计权衡
  • 2026宜春大冰块厂家回头客榜单推荐:哪家更靠谱? - 热点咨讯
  • 攻克Android 7+ HTTPS抓包壁垒:夜神模拟器Root权限与Charles证书系统级部署实战
  • 咸安黄金回收实测记录,正规老店全城免费上门 - 华金汇黄金回收
  • 电机驱动实战-基于STM32的直流有刷电机H桥控制与保护电路设计
  • 长沙芙蓉区测、除甲醛|维小达|CMA甲醛检测、新房除醛、工装除醛、板材源头除醛、全屋空气净化、老旧翻新祛异味、居家商用一站式空气养护服务 - 一点传媒
  • 2026 团风黄金回收星级深度测评|深耕 30 年本土合规老店,全县 24 小时免费上门无任何隐形扣费 - 华金汇黄金回收
  • 劳力士中国官方售后服务中心|地址与联系电话权威信息声明(2026年7月最新) - 劳力士服务中心
  • Obsidian五种同步策略详解:怎么根据设备角色设置仅发送、仅接收和双向同步
  • 2026 年选 SEO公司前必读:7 个“一票否决”红线,踩中一条直接拉黑+避坑指南 - GEO优化
  • 百达翡丽中国官方售后服务中心|服务电话及全部地址权威信息通告(2026年7月更新) - 百达翡丽官方售后中心
  • DSP C2000 F28002x 数字电源实战:基于SysConfig的ePWM与CMPSS联动保护配置
  • 2026 年当下,优秀的G657A1光纤源头厂家哪家权威,揭秘:为什么你的网络升级没用? - 领域鉴赏官
  • 鸿蒙 ArkTS 实战:Camping Spot Favorites 从出行记录到状态反馈完整解析
  • 篆刻印章文玩石料线上怎么卖?小程序商城高粘性运营思路,含零代码SAAS、AI编程、源码定制交付
  • 原生嵌入主流办公协同工具,打造轻量化员工自助咨询入口
  • 2026 京山卖金完整测评|本地三十年合规回收老店,城乡上门无任何隐藏收费 - 华金汇黄金回收
  • PyTorch模型服务化实战:从Notebook到生产级TorchServe部署
  • 宝玑中国官方售后服务中心|服务热线及网点地址权威信息通知(2026年7月更新) - 亨得利钟表维修中心
  • 制造EDA初级中级工程师简历别写流水账,标准化10维完整书写样本
  • Python零基础入门:从环境搭建到工程化实战指南
  • 2026广水黄金回收实测测评|30年老店全城免费上门,零隐形扣费更靠谱 - 华金汇黄金回收