协议
BondingDelegate
在 fuchsia.bluetooth.host/host.fidl 中定义
RestoreBonds
将现有的已绑定设备恢复到主机。系统将建立经过身份验证的会话 使用提供的绑定数据建立未来的连接。
如果 LE 传输的绑定数据可用,主机将建立连接 如果该同行向我们展示了相关广告。
如果 bonds
中的任何条目无法恢复,这些条目将在以下时间后返回:
errors
。对于格式不正确的条目以及已经
BT 主机所知。空 errors
列表表示所有键都已成功建立
已恢复。
请求
名称 | 类型 |
---|---|
bonds |
vector<fuchsia.bluetooth.sys/BondingData>
|
响应
名称 | 类型 |
---|---|
payload |
BondingDelegate_RestoreBonds_Result
|
WatchBonds
获取下一次绑定更新。该请求将挂起,直到下次更新为止。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
BondingDelegate_WatchBonds_Result
|
DiscoverySession
在 fuchsia.bluetooth.host/host.fidl 中定义
表示要启用发现的令牌协议。
停止
在服务器端关闭此 DiscoverySession,如果这是最后一次打开,则会结束 Discovery DiscoverySession。它可用于同步协议两端的闭包。 如果不需要同步,可以直接关闭 DiscoverySession 协议 。
请求
<空>
主机
在 fuchsia.bluetooth.host/host.fidl 中定义
用于与蓝牙主机设备交互的接口 (bt-host)
连接
使用标识符 id
建立与对等方的 BR/EDR 和/或 LE 连接:
-
如果已知对等端支持 BR/EDR 传输,则其上的逻辑链路 将建立传输。如果连接尝试成功, 使用“RequestProfile()”注册的本地服务将提供给对等方 在对等设备上发现的传统服务将收到通知给本地服务 异步执行。
-
如果已知对等设备支持 LE 传输,则其上的逻辑链路 将建立传输。如果连接尝试成功, 本地数据库(通过 RequestGattServer() 填充)中的 GATT 服务将变为 对等网络的可用性同样,在 Google Cloud 控制台上发现的远程 GATT 服务 对等方将可供拥有 gatt.Client 功能的用户和设备驱动程序使用 可以绑定到 bt-gatt-svc 类设备的应用。
程序的结果将通过 status
传达。如果远程设备
同时支持 BR/EDR 和 LE 传输,并且无法在两者上建立链路,则
系统将返回错误状态,且两个传输均不会连接。
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
响应
名称 | 类型 |
---|---|
payload |
Host_Connect_Result
|
断开连接
终止与远程对等方的所有连接(BR/EDR 或 LE),具有标识符 id
。
- 请求
id
要断开连接的对等方的标识符。
- 响应
status
如果 LE 或 BR/EDR 传输失败,则包含错误。 如果两个传输都成功断开连接或 如果对等体已断开连接。
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
响应
名称 | 类型 |
---|---|
payload |
Host_Disconnect_Result
|
EnableBackgroundScan
启用或停用被动 LE 后台扫描。启用后,bt-host 在以下情况下,设备会在后台持续执行被动 LE 扫描: 没有任何设备发现会话处于活跃状态,并接受来自 绑定外设。
请求
名称 | 类型 |
---|---|
enabled |
bool
|
EnablePrivacy
启用或停用 LE 隐私功能。启用后,bt-host 设备将使用 私有设备地址。停用后,公共身份地址将 (这是默认设置)。
请求
名称 | 类型 |
---|---|
enabled |
bool
|
取消保存
从蓝牙主机中删除对等设备。如果对等体已连接,则会断开连接。
“device_id
”将不再引用任何对等方,即使具有相同地址的设备
再次被发现。
在不存在由 device_id
标识的对等体后返回成功(即使并非如此)
存在于取消保存之前),如果 device_id
指定的对等端无法运行,则失败
并且仍然存在于列表中。
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
响应
名称 | 类型 |
---|---|
payload |
Host_Forget_Result
|
配对
使用提供的 id
和 options
开始与对等端配对。如果没有,则返回错误
找到了与 id
连接的对等设备,或者配对过程失败。
如果 options
指定的安全等级高于当前配对,则此方法
尝试提高安全等级。否则,此方法不会产生任何影响并返回
成功。
注意:这旨在满足需要完成配对流程的测试场景 而无需依赖服务访问权限。在正常操作中,蓝牙安全保护 在服务访问期间强制执行。
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
options |
fuchsia.bluetooth.sys/PairingOptions
|
响应
名称 | 类型 |
---|---|
payload |
Host_Pair_Result
|
RequestProtocol
执行指定的协议请求。bt-host 将开始处理 FIDL 消息。如果 请求无法完成,则 BT 主机设备将关闭其给定通道的末端。
请求
名称 | 类型 |
---|---|
payload |
ProtocolRequest
|
SetBondingDelegate
设置 BondingDelegate 协议,以便在需要
应用。如果委托已设置,新的 delegate
将使用
ALREADY_BOUND
请求
名称 | 类型 |
---|---|
delegate |
server_end<BondingDelegate>
|
SetBrEdrSecurityMode
设置主机的 GAP BR/EDR 安全模式。bt-host 仅支持加密的主机, 基于连接的安全模式,即模式 4 和仅安全连接模式。如果 安全模式设为“仅限安全连接”,任何现有加密连接 不符合安全要求的“仅安全连接”模式将会断开连接。
请求
名称 | 类型 |
---|---|
bredr_security_mode |
fuchsia.bluetooth.sys/BrEdrSecurityMode
|
SetConnectable
设置此主机是否应可连接。
请求
名称 | 类型 |
---|---|
enabled |
bool
|
响应
名称 | 类型 |
---|---|
payload |
Host_SetConnectable_Result
|
SetDeviceClass
设置此主机设备的设备类别。
请求
名称 | 类型 |
---|---|
device_class |
fuchsia.bluetooth/DeviceClass
|
响应
名称 | 类型 |
---|---|
payload |
Host_SetDeviceClass_Result
|
SetDiscoverable
设置是否应检测到此主机。
请求
名称 | 类型 |
---|---|
enabled |
bool
|
响应
名称 | 类型 |
---|---|
payload |
Host_SetDiscoverable_Result
|
SetLeSecurityMode
设置主机的 GAP LE 安全模式。bt-host 仅支持基于连接的已加密 即模式 1 和仅安全连接模式。如果设置了安全模式 任何不符合 系统将断开“仅限安全连接”模式的安全要求。
请求
名称 | 类型 |
---|---|
le_security_mode |
fuchsia.bluetooth.sys/LeSecurityMode
|
SetLocalData
将本地数据分配给此主机。
请求
名称 | 类型 |
---|---|
payload |
fuchsia.bluetooth.sys/HostData
|
SetLocalName
设置此主机设备的本地名称。
请求
名称 | 类型 |
---|---|
local_name |
fuchsia.bluetooth/DeviceName
|
响应
名称 | 类型 |
---|---|
payload |
Host_SetLocalName_Result
|
SetPairingDelegate
分配配对委托,该委托将使用指定的 I/O 功能。调用此方法将取消已启动的所有正在进行的配对过程 之前的委托如果没有 PairingDelegate,系统会拒绝配对请求 分配。
请求
名称 | 类型 |
---|---|
input |
fuchsia.bluetooth.sys/InputCapability
|
output |
fuchsia.bluetooth.sys/OutputCapability
|
delegate |
fuchsia.bluetooth.sys/PairingDelegate
|
SetPeerWatcher
设置在对等方发生更改时接收通知的 PeerWatcher 协议。 一次只能配置 1 个 PeerWatcher。
请求
名称 | 类型 |
---|---|
peer_watcher |
server_end<PeerWatcher>
|
关闭
关闭主机,结束所有活动的蓝牙程序:
- 与此主机关联的所有 FIDL 接口句柄都已关闭,并且所有 通过 FIDL 客户端发起的连接会中断。
- 所有扫描、发现和广告程序都会停止。
- 绑定的设备会被清除并从自动连接列表中移除。
- 自动连接的外围设备已断开连接。
这样可以有效地将主机重置为其初始状态 供将来的请求使用。
在过程完成时,主机将继续发送 OnDeviceUpdated 事件 已终止。
关停完成后,主机协议将关闭。
请求
<空>
StartDiscovery
启动 BR/EDR 和 LE 设备的一般发现程序。成功后,
可以使用 fuchsia.bluetooth.host/Host.WatchPeers 方法监控对等设备。出错时,
token
将返回一首墓碑。如果设备不支持 BR/EDR,则仅支持 LE
将执行发现。
在 LE 传输上,仅报告常规可检测且可连接的外围设备。
探索将会持续,直到所有探索会话结束。
- 请求
token
DiscoverySession 协议,只要该协议处于打开状态, 发现。如果关闭此会话,如果没有其他会话,系统会停止发现服务 处于打开状态。
请求
名称 | 类型 |
---|---|
payload |
HostStartDiscoveryRequest
|
WatchState
返回由该主机管理的蓝牙主机子系统和控制器的相关信息 实例。如果自上次调用此方法之后状态没有更改, 则响应将被延迟,直到发生更改为止。
返回的 info
结构将填充 bt-host 的当前状态
设备。但是,active
参数永远不会填充。此字段由系统管理
更高的层。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
Host_WatchState_Result
|
PeerWatcher
在 fuchsia.bluetooth.host/host.fidl 中定义
GetNext
获取下一次类似应用更新。该请求将挂起,直到下次更新为止。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
PeerWatcher_GetNext_Result
|
接收器
在 fuchsia.bluetooth.host/host.fidl 中定义
根据协议接收蓝牙主机,以便在蓝牙主机子系统中使用
AddHost
添加新的 bt 主机。如果无法处理 request
,应将其关闭。
请求
名称 | 类型 |
---|---|
request |
Host
|
结构体
BondingDelegate_RestoreBonds_Response
在 fuchsia.bluetooth.host/host.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
errors |
vector<fuchsia.bluetooth.sys/BondingData>
|
无默认设置 |
Host_Connect_Response
在 fuchsia.bluetooth.host/host.fidl 中定义
<空>
Host_Disconnect_Response
在 fuchsia.bluetooth.host/host.fidl 中定义
<空>
Host_Forget_Response
在 fuchsia.bluetooth.host/host.fidl 中定义
<空>
Host_Pair_Response
在 fuchsia.bluetooth.host/host.fidl 中定义
<空>
Host_SetConnectable_Response
在 fuchsia.bluetooth.host/host.fidl 中定义
<空>
Host_SetDeviceClass_Response
在 fuchsia.bluetooth.host/host.fidl 中定义
<空>
Host_SetDiscoverable_Response
在 fuchsia.bluetooth.host/host.fidl 中定义
<空>
Host_SetLocalName_Response
在 fuchsia.bluetooth.host/host.fidl 中定义
<空>
Host_WatchState_Response
在 fuchsia.bluetooth.host/host.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
info |
fuchsia.bluetooth.sys/HostInfo
|
无默认设置 |
表格
HostStartDiscoveryRequest 资源
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
token |
server_end<DiscoverySession>
|
必填。 |
联合体
BondingDelegate_RestoreBonds_Result strict
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
BondingDelegate_RestoreBonds_Response
|
|
3 |
framework_err |
internal
|
BondingDelegate_WatchBonds_Response flexible
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
updated |
fuchsia.bluetooth.sys/BondingData
|
在对等方的绑定数据添加/更新时发送通知。 |
2 |
removed |
fuchsia.bluetooth/PeerId
|
因身份验证失败而导致绑定被移除时发送通知。 |
BondingDelegate_WatchBonds_Result 严格
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
BondingDelegate_WatchBonds_Response
|
|
3 |
framework_err |
internal
|
Host_Connect_Result 严格
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Host_Connect_Response
|
|
2 |
err |
fuchsia.bluetooth.sys/Error
|
|
3 |
framework_err |
internal
|
Host_Disconnect_Result 严格
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Host_Disconnect_Response
|
|
2 |
err |
fuchsia.bluetooth.sys/Error
|
|
3 |
framework_err |
internal
|
Host_Forget_Result 严格
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Host_Forget_Response
|
|
2 |
err |
fuchsia.bluetooth.sys/Error
|
|
3 |
framework_err |
internal
|
Host_Pair_Result 严格
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Host_Pair_Response
|
|
2 |
err |
fuchsia.bluetooth.sys/Error
|
|
3 |
framework_err |
internal
|
Host_SetConnectable_Result 严格
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Host_SetConnectable_Response
|
|
2 |
err |
fuchsia.bluetooth.sys/Error
|
|
3 |
framework_err |
internal
|
Host_SetDeviceClass_Result strict
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Host_SetDeviceClass_Response
|
|
2 |
err |
fuchsia.bluetooth.sys/Error
|
|
3 |
framework_err |
internal
|
Host_SetDiscoverable_Result 严格
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Host_SetDiscoverable_Response
|
|
2 |
err |
fuchsia.bluetooth.sys/Error
|
|
3 |
framework_err |
internal
|
Host_SetLocalName_Result strict
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Host_SetLocalName_Response
|
|
2 |
err |
fuchsia.bluetooth.sys/Error
|
|
3 |
framework_err |
internal
|
Host_WatchState_Result 严格
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Host_WatchState_Response
|
|
3 |
framework_err |
internal
|
PeerWatcher_GetNext_Response 柔性
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
updated |
vector<fuchsia.bluetooth.sys/Peer>
|
在发现、连接期间获得新信息时,添加和更新对等节点 建立和键结程序。 |
2 |
removed |
vector<fuchsia.bluetooth/PeerId>
|
类似应用会被移除: a.通过 fuchsia.bluetooth.host.Host/Forget 明确进行;或 b.bt-host 最近未见到对等方,并且对等方未绑定或连接 |
PeerWatcher_GetNext_Result 严格
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
PeerWatcher_GetNext_Response
|
|
3 |
framework_err |
internal
|
ProtocolRequest 灵活 资源
在 fuchsia.bluetooth.host/host.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
central |
server_end<fuchsia.bluetooth.le/Central>
|
|
2 |
peripheral |
server_end<fuchsia.bluetooth.le/Peripheral>
|
|
3 |
gatt_server |
server_end<fuchsia.bluetooth.gatt/Server>
|
|
4 |
gatt2_server |
server_end<fuchsia.bluetooth.gatt2/Server>
|
|
5 |
profile |
server_end<fuchsia.bluetooth.bredr/Profile>
|