尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

对外接口层

对外接口层
📅 发布时间:2026/7/15 23:42:00

接口目录结构总览

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)设置分布式数据库数据级别

接口层级关系总图

相关新闻

  • 2026风扇及散热配件外贸独立站搭建公司怎么选?八项结构化评估指南,含零代码SAAS,源码定制交付
  • 长沙天心区测、除甲醛|维小达|CMA甲醛检测、新房除醛、工装除醛、板材源头除醛、全屋空气净化、老旧翻新祛异味、居家商用一站式空气养护服务 - 一点传媒
  • 2026宜春大冰块厂家回头客榜单推荐:哪家更靠谱? - 热点咨讯

最新新闻

  • 学生综合素质评价企业排名
  • 找厦门室外地坪漆源头厂家 本地高品质供应商选型指南 - 热点品牌推荐
  • 北京地区车主选择汽车底盘系统维修公司实用参考指南 - 热点品牌推荐
  • 海南专业货车报废回收公司 为全省车主提供全流程合规报废车辆处置服务 - 热点品牌推荐
  • 西南三省塑料水桶品牌盘点:本土靠谱厂商排行 - 奔跑123
  • 【AI大模型应用开发】【项目实战】22.RAG智慧问答项目-(十)RAG系统评估

日新闻

  • Toon Boom Harmony 高效工作流:从节点视图到镜头标记的实战技巧
  • 真力时售后维修电话,为您提供专业腕表保养与故障修复服务权威公示(2026年7月最新) - 亨得利官方服务中心
  • 【C++】类和对象--构造函数进阶(初始化列表与explicit)

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号