对外接口层
·
接口目录结构总览

1. 公共接口(Common)
头文件: softbus_common.h | softbus_error_code.h
常量定义
| 常量 | 值 | 说明 |
|---|---|---|
NETWORK_ID_BUF_LEN |
65 | 网络ID长度 |
UDID_BUF_LEN |
65 | UDID长度 |
UUID_BUF_LEN |
65 | UUID长度 |
BT_MAC_LEN |
18 | 蓝牙MAC地址长度 |
IP_STR_MAX_LEN |
46 | IP地址最大长度(支持IPv6) |
MAX_CAPABILITYDATA_LEN |
513 | 能力数据最大长度 |
DISC_MAX_CUST_DATA_LEN |
513 | 发现自定义数据最大长度 |
DISC_MAX_DEVICE_NAME_LEN |
65 | 设备名最大长度 |
DISC_MAX_DEVICE_ID_LEN |
96 | 设备ID最大长度 |
核心枚举类型
| 枚举 | 说明 |
|---|---|
ConnectionAddrType |
连接地址类型 (WLAN/BR/BLE/ETH/SESSION/USB) |
BleProtocolType |
BLE协议类型 (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/音箱/车机等) |
StrategyForBle |
BLE策略 (抑制/恢复发现) |
核心结构体
| 结构体 | 说明 |
|---|---|
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_CODE |
1 | 发现模块 |
CONN_SUB_MODULE_CODE |
2 | 连接模块 |
AUTH_SUB_MODULE_CODE |
3 | 认证模块 |
LNN_SUB_MODULE_CODE |
4 | 组网模块 |
TRANS_SUB_MODULE_CODE |
5 | 传输模块 |
IPCRPC_SUB_MODULE_CODE |
6 | IPC/RPC模块 |
PUBLIC_SUB_MODULE_CODE |
10 | 公共模块 |
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) |
onHichainProofException |
Hichain证明异常 |
| - | 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) |
设置文件发送监听 |
核心回调结构体
| 回调 | 方法 | 说明 |
|---|---|---|
ISessionListener |
OnSessionOpened |
会话打开 |
OnSessionClosed |
会话关闭 | |
OnBytesReceived |
接收字节数据 | |
OnMessageReceived |
接收消息 | |
OnStreamReceived |
接收流数据 | |
OnQosEvent |
QoS事件 | |
IFileReceiveListener |
OnReceiveFileStarted/OnReceiveFileProcess/OnReceiveFileFinished/OnFileTransError |
文件接收回调 |
IFileSendListener |
OnSendFileProcess/OnSendFileFinished/OnFileTransError |
文件发送回调 |
核心类型
| 类型 | 说明 |
|---|---|
SessionType |
TYPE_MESSAGE / TYPE_BYTES / TYPE_FILE / TYPE_STREAM |
StreamType |
RAW_STREAM / COMMON_VIDEO_STREAM / COMMON_AUDIO_STREAM / VIDEO_SLICE_STREAM |
LinkType |
WIFI_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质量 |
核心回调结构体
| 回调 | 方法 | 说明 |
|---|---|---|
ISocketListener |
OnBind |
Socket绑定成功 |
OnShutdown |
Socket关闭 | |
OnBytes |
接收字节数据 | |
OnMessage |
接收消息 | |
OnStream |
接收流数据 | |
OnFile |
接收文件事件 | |
OnQos |
QoS状态变化 | |
OnError |
异步绑定错误 | |
OnNegotiate |
协商回调 | |
OnBytesSent |
数据发送完成 |
核心类型
| 类型 | 说明 |
|---|---|
TransDataType |
MESSAGE / BYTES / FILE / RAW_STREAM / VIDEO_STREAM / AUDIO_STREAM / SLICE_STREAM / RAW_STREAM_ENCRYPED |
SocketInfo |
Socket描述(name/peerName/peerNetworkId/pkgName/dataType) |
QosType |
MIN_BW / MAX_LATENCY / MIN_LATENCY / RTT_LEVEL / MAX_BUFFER / MAX_IDLE_TIMEOUT / TRANS_RELIABILITY / TRANS_CONTINUOUS / REUSE_BE |
ShutdownReason |
UNKNOWN / 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) |
设置分布式数据库数据级别 |
接口层级关系总图

更多推荐
所有评论(0)