协议
访问
在 fuchsia.bluetooth.sys/access.fidl 中定义
对蓝牙通用访问配置文件中定义的操作模式和流程进行抽象化的协议(请参阅核心规范 v5.1、第 3 卷,C 部分)。
本协议规定的程序适用于整个系统。在这些流程中发挥积极作用的蓝牙控制器可以使用 HostWatcher 协议进行管理。
当底层通道关闭时,访问协议实例启动的过程会终止。
连接
使用给定的 id
启动与对等端的连接。此方法根据已知对等方支持的技术连接 BR/EDR 和 LE 传输。
- 请求
id
:要连接的对等方的 ID。
- 如果无法发起与对等端的连接,则报告
Error.FAILED
。 - 错误:如果无法识别
id
,则报告Error.PEER_NOT_FOUND
。
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
响应
名称 | 类型 |
---|---|
payload |
Access_Connect_Result
|
断开连接
断开与具有给定 id
的对等节点的所有逻辑链接。这包括使用所有 Access 和 fuchsia.bluetooth.le 协议实例发起的 LE 和 BR/EDR 链接。
- 请求
id
:要断开连接的对等方的 ID。
- 错误:如果无法识别
id
,则报告Error.PEER_NOT_FOUND
。
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
响应
名称 | 类型 |
---|---|
payload |
Access_Disconnect_Result
|
移除
移除所有绑定信息,并断开与具有给定 id
的对等方的任何现有链接。
- 请求
id
:要忘记的对等方的 ID。
- 错误:如果无法识别
id
,则报告Error.PEER_NOT_FOUND
。
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
响应
名称 | 类型 |
---|---|
payload |
Access_Forget_Result
|
MakeDiscoverable
在 BR/EDR 传输中,将系统设置为“可发现”模式。活跃主机将响应一般查询(通过定期进入查询扫描模式)。
- 请求
token
fuchsia.bluetooth.sys/ProcedureToken,当可检测模式会话处于活动状态时,它将保持有效状态。注意:在所有 fuchsia.bluetooth.sys/Access 客户端放弃其令牌之前,系统可能一直可检测。
- 如果无法进入查询模式,则报告 Error.FAILED。
请求
名称 | 类型 |
---|---|
token |
server_end<ProcedureToken>
|
响应
名称 | 类型 |
---|---|
payload |
Access_MakeDiscoverable_Result
|
配对
使用给定的 options
启动与远程 id
的配对。只有在配对过程完成或中止后,此调用才会完成。
如果未找到具有 id
的已连接对等设备,或配对过程失败,则返回错误。如果指定的对等体已配对,则会立即返回一个成功值,除非配对过程通过 LE 进行,并且 PairingOptions.le_security_level 比当前安全等级更安全,在这种情况下,我们将尝试将安全性提高到请求的等级。
系统会通过 options.transport
指示的任何传输方式进行配对。如果该传输服务当前未连接,配对将失败并显示 Error.PEER_NOT_FOUND
。目前,如果请求了 DUAL_MODE,我们将尝试通过 LE 传输进行配对。
- 请求
id
:要启动配对的对端的 ID - 请求
options
用于此配对请求的配置选项
- 如果无法识别
id
,或对等传输器未在请求的传输上连接,则报告Error.PEER_NOT_FOUND
。 - 错误:如果传递了格式不正确的选项,则报告
Error.INVALID_ARGUMENTS
- error 如果配对期间出现错误,则报告
Error.FAILED
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
options |
PairingOptions
|
响应
名称 | 类型 |
---|---|
payload |
Access_Pair_Result
|
SetDeviceClass
设置在系统处于可检测到模式时将对附近的对等设备可见的本地设备类。
- 请求
device_class
:要分配给系统的设备类别。
请求
名称 | 类型 |
---|---|
device_class |
fuchsia.bluetooth/DeviceClass
|
SetLocalName
为蓝牙系统指定本地名称。当系统处于可检测到模式时以及名称发现过程中,此名称将对附近的对等设备可见。
- 请求
name
要分配给系统的完整本地名称。
请求
名称 | 类型 |
---|---|
name |
fuchsia.bluetooth/DeviceName
|
SetPairingDelegate
分配 PairingDelegate 以响应驱动器配对程序。代理将配置为使用提供的 I/O 功能来确定配对方法。
一次只能注册一个 PairingDelegate。关闭 PairingDelegate 会取消与委托关联的所有正在进行的配对过程,并关闭之前为此 Access 实例分配的 PairingDelegate。
- 请求
input
蓝牙输入功能 - 请求“
output
”蓝牙输出功能 - 请求
delegate
PairingDelegate 通道的客户端。
弃用 - 此方法可纳入 fuchsia.bluetooth.sys/Pairing 协议。请参见 。
如需详细了解此次迁移,请访问 https://fxbug.dev/42180744。
请求
名称 | 类型 |
---|---|
input |
InputCapability
|
output |
OutputCapability
|
delegate |
PairingDelegate
|
StartDiscovery
启动常规发现过程。所有可检测到的常规 BR/EDR、LE 和 BR/EDR/LE 设备都会显示在对等列表中,可以通过调用 fuchsia.bluetooth.sys/Access.WatchPeers 进行观察。
- 请求
token
fuchsia.bluetooth.sys/ProcedureToken,其在发现过程中仍然有效。注意:无线装置将继续执行发现操作,直到所有 fuchsia.bluetooth.sys/访问都放弃其令牌。
- 如果无法启动任一传输上的发现,则报告 Error.FAILED。
请求
名称 | 类型 |
---|---|
token |
server_end<ProcedureToken>
|
响应
名称 | 类型 |
---|---|
payload |
Access_StartDiscovery_Result
|
WatchPeers
返回系统已知的所有对等设备(可连接的蓝牙设备)的列表。第一次调用会导致系统立即在 updated
返回值参数中发送所有已知对等方的快照。只有当从上次调用以来报告的条目中添加、修改或移除一个或多个条目时,后续调用才会收到响应。
- 响应
updated
个自上次调用 WatchPeers() 后添加或更新的类似应用。 - 响应
removed
自上次调用 WatchPeers() 以来移除的对等设备的 ID。
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
updated |
vector<Peer>
|
removed |
vector<fuchsia.bluetooth/PeerId>
|
引导
在 fuchsia.bluetooth.sys/bootstrap.fidl 中定义
用于初始化永久性核心蓝牙数据的协议。此协议会填充数据,以确定其他蓝牙设备检测到此设备的身份。
只能在核心蓝牙主机子系统生成自己的身份之前获取此协议。提交初始数据后,此功能将不可用,并且即使连接了新的蓝牙适配器也是如此。
由于涉及隐私和绑定密钥,以及让此设备承担其他设备的蓝牙身份,因此此协议应仅提供给能够保证数据来源安全的特权组件。
AddIdentities
添加要添加到未填充的蓝牙堆栈的身份。
重复调用会附加身份。
请求
名称 | 类型 |
---|---|
identities |
vector<Identity>
|
提交
将所有添加的引导数据写入蓝牙核心堆栈。无论成功与否,服务器都会关闭通道。如果成功,则返回且不会出现错误,并且即使未写入任何引导数据,该堆栈也会被视为已初始化。如果任何主机或绑定对等数据不足或不一致,且没有任何效果(客户端可通过获取另一个协议句柄进行重试),则返回 INVALID_HOST_IDENTITY。
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
payload |
Bootstrap_Commit_Result
|
配置
在 fuchsia.bluetooth.sys/configuration.fidl 中定义
用于为核心蓝牙系统配置参数和功能的协议。这些设置适用于系统已知的所有 bt-host 驱动程序。
此协议应仅提供给具有较高特权的组件(例如测试/资格认证环境中的蓝牙开发者工具)。
更新
将 settings
中显示的字段应用于系统已知的所有 bt-host 驱动程序。settings
中不存在的任何字段都将保持不变。
- 请求
settings
活跃 bt-host 驱动程序的新设置 - 只需提供修改后的设置。
- 响应
result
在应用新设置后,包含结果设置的完整填充表。
请求
名称 | 类型 |
---|---|
settings |
Settings
|
响应
名称 | 类型 |
---|---|
result |
Settings
|
HostWatcher
在 fuchsia.bluetooth.sys/host_watcher.fidl 中定义
用于观察和管理系统上的蓝牙控制器的协议。
SetActive
将具有给定 id
的主机指定为活跃状态。所有蓝牙过程都将通过此主机路由。之前分配的任何活跃主机都将被停用,并且其所有待处理过程也将终止。
- 如果找不到具有
id
的主机,则可能会失败。
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/HostId
|
响应
名称 | 类型 |
---|---|
payload |
HostWatcher_SetActive_Result
|
观看
获取所有可用蓝牙控制器及其状态的列表。只有当此列表自客户端上次发送此消息以来发生了更改时,系统才会发送响应。
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
hosts |
vector<HostInfo>
|
配对
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
允许系统客户端启用蓝牙配对。
SetDelegate
分配 PairingDelegate2 来处理配对过程。提供的 I/O 功能将用于确定使用的方法。
在系统范围内,一次只能设置 PairingDelegate 和 PairingDelegate2。如果在设置另一个委托的情况下调用了此函数,新的委托将立即关闭。
关闭 PairingDelegate2 会取消设置配对委托。正在进行的 PairingRequest 仍然可以完成,但新请求的行为就像未设置委托一样。
如果未设置委托,则所有配对都将被拒绝,即使对等连接由本地设备发起。
- 请求
input
蓝牙输入功能,请参阅InputCapability
- 请求
output
蓝牙输出功能,请参阅OutputCapability
- 请求
delegate
PairingDelegate2,这将接收配对请求
请求
名称 | 类型 |
---|---|
input |
InputCapability
|
output |
OutputCapability
|
delegate |
PairingDelegate2
|
SetPairingDelegate
分配一个 PairingDelegate 以响应配对过程。提供的 I/O 功能将用于确定使用的配对方法。
在系统范围内,一次只能设置一个 PairingDelegate。如果在设置了另一个委托的情况下调用此方法,则新的委托会立即关闭。在 PairingDelegate 设置后关闭 PairingDelegate 会取消所有正在进行的配对过程,而不接受该委托,并且取消设置该委托。
如果未设置 PairingDelegate,则所有配对都将被拒绝,即使对等连接由本地设备发起。
- 请求
input
蓝牙输入功能,请参阅InputCapability
- 请求
output
蓝牙输出功能,请参阅OutputCapability
- 请求
delegate
PairingDelegate,这将接收配对请求
请求
名称 | 类型 |
---|---|
input |
InputCapability
|
output |
OutputCapability
|
delegate |
PairingDelegate
|
PairingDelegate
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
蓝牙配对委托负责确认或拒绝从与本地设备连接或正在连接到本地设备的蓝牙对等设备收到的配对请求。
任何新配对都会导致调用 PairingDelegate.OnPairingRequest
,包括将 InputCapability 和 OutputCapability 设置为 none 的配对。代理需要有足够的上下文来推导是接受还是拒绝配对。
每个系统一次只能设置一个受托人。如需了解如何设置配对委托,请参阅 fuchsia.bluetooth.sys.Pairing
。
OnLocalKeypress
代理可以发送此事件,以在配对期间使用 PairingMethod.PASSKEY_ENTRY
通知对等端本地按键。
通过发送本地按键事件,用户在输入通行密钥时可以有额外的时间进行配对。
这只应在使用 PASSKEY_ENTRY 方法收到 OnPairingRequest 后、该配对请求响应之前发送。
- 具有配对请求的对端的请求
id
ID - 请求
keypress
应发送的通知类型
响应
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
keypress |
PairingKeypress
|
OnPairingComplete
在对等方的配对过程完成时调用。 这可能是由于操作成功完成或出现错误(例如,由于对等方取消、超时或断开连接)所致。
- 请求
id
:正在配对的对等方的蓝牙对等 ID。 - 如果配对成功,则请求
success
true,否则请求 false。
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
success |
bool
|
OnPairingRequest
调用以确认配对。如果 accept
响应为 true,否则配对过程将继续执行,否则将被拒绝。如果配对方法需要通行密钥,还必须添加通行密钥。不需要通行密钥的配对方法会忽略 entered_passkey
响应。
在收到响应之前,配对可能会失败(通常是由超时或对等连接导致的)。发生这种情况时,系统会调用 OnPairingComplete 方法。在这种情况下发送的任何回复都将被忽略。
- 请求关于正在配对的对等设备的
peer
信息 - 有效的
method
配对方法。请参阅PairingMethod
- 请求
displayed_passkey
在用户使用 PASSKEY_DISPLAY 或 PASSKEY_COMPARISON 时向用户显示的通行密钥。反之也没什么意义。
- 如果配对被接受,则响应
accept
true - 响应
entered_passkey
用户输入的通行密钥。除非方法为 PASSKEY_ENTRY,否则会被忽略。
请求
名称 | 类型 |
---|---|
peer |
Peer
|
method |
PairingMethod
|
displayed_passkey |
uint32
|
响应
名称 | 类型 |
---|---|
accept |
bool
|
entered_passkey |
uint32
|
OnRemoteKeypress
进行调用以使用 PairingMethod.PASSKEY_DISPLAY
在配对期间通知对等设备按下按键。
此事件用于向代理提供按键事件,当用户在对等设备上输入通行密钥时,可提供响应式用户体验。每次按键操作都会调用此事件一次。
系统仅会在针对 id
发送 OnPairingRequest 和发送 OnPairingComplete 期间调用此事件。
注意:许多设备不会发送这些事件
- 请求
id
:发送按键事件的对等方的 ID。 - 请求
keypress
:收到的事件类型。
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
keypress |
PairingKeypress
|
PairingDelegate2
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
蓝牙配对委托负责确认或拒绝从与本地设备连接或正在连接到本地设备的蓝牙对等设备收到的配对请求。
任何新配对都会导致调用 PairingDelegate.StartRequest
,包括将 InputCapability 和 OutputCapability 设置为 none 的配对。代理需要有足够的上下文来推导是接受还是拒绝配对。
每个系统一次只能设置一个受托人。如需了解如何设置配对委托,请参阅 fuchsia.bluetooth.sys.Pairing
。
RequestComplete
在对等方的配对过程完成时调用。这可能是由于成功完成或出现错误(例如,由于对等方取消、超时或断开连接)。
- 请求
id
:正在配对的对等方的蓝牙对等 ID - 如果配对成功,则请求
success
true,否则请求 false
请求
名称 | 类型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
success |
bool
|
StartRequest
在开始与 peer
配对时调用。配对过程将使用 PairingRequest 协议继续。
info
中提供了配对属性,用于指示本地预期的互动类型。
对于不同的对等方,可以同时多个请求处于活跃状态,并且请求的存在时间可以比此协议更长。丢弃请求协议后,系统将自动拒绝配对。
所有字段始终都会显示。
请求
名称 | 类型 |
---|---|
payload |
PairingDelegate2StartRequestRequest
|
PairingRequest
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
此协议在配对过程中处于活动状态,并通过 PairingDelegate.StartRequest
提供给 PairingDelegate。如果配对过程提前完成但未成功,则服务器将关闭此协议并显示 epitaph:
- ZX_ERR_UNAVAILABLE - 蓝牙对等连接已断开
- ZX_ERR_NOT_SUPPORTED - 提供的通行密钥不符合预期
- ZX_ERR_BAD_STATE - 在未使用 PairingProperties.passkey_entry 时发送按键
- ZX_ERR_TIMED_OUT - 未检测到活动,配对已停止
接受
接受配对请求。如果使用了 PairingProperties.passkey_entry 方法,则需要输入 Entered_passkey,否则请忽略。
请求
名称 | 类型 |
---|---|
payload |
PairingRequestAcceptRequest
|
按键
用于传达本地按键事件,以便在配对进度更新远程对等方。对此方法的响应应该用于流控制。
请求
名称 | 类型 |
---|---|
keypress |
PairingKeypress
|
响应
<EMPTY>
OnComplete
在配对完成时、在协议关闭前发送一次。
成功值和 PeerId 也将通过 PairingDelegate.RequestComplete
调用发送给代理。
响应
名称 | 类型 |
---|---|
success |
bool
|
OnKeypress
当配对方法是 passkey_display 时发送。可用于更新界面以指示已收到按键。
响应
名称 | 类型 |
---|---|
keypress |
PairingKeypress
|
拒绝
拒绝配对请求。 关闭此协议也将拒绝配对请求。
请求
<EMPTY>
ProcedureToken
在 fuchsia.bluetooth.sys/access.fidl 中定义
表示活动过程。支持此协议的句柄的有效性取决于它所附加到的过程的活动。详细说明如下:
- 关闭令牌句柄会结束其所属的过程。
- 系统会关闭令牌句柄,以告知程序已在内部终止。
结构
Access_Connect_Response
在 fuchsia.bluetooth.sys/access.fidl 中定义
<EMPTY>
Access_Disconnect_Response
在 fuchsia.bluetooth.sys/access.fidl 中定义
<EMPTY>
Access_Forget_Response
在 fuchsia.bluetooth.sys/access.fidl 中定义
<EMPTY>
Access_MakeDiscoverable_Response
在 fuchsia.bluetooth.sys/access.fidl 中定义
<EMPTY>
Access_Pair_Response
在 fuchsia.bluetooth.sys/access.fidl 中定义
<EMPTY>
Access_StartDiscovery_Response
在 fuchsia.bluetooth.sys/access.fidl 中定义
<EMPTY>
Bootstrap_Commit_Response
在 fuchsia.bluetooth.sys/bootstrap.fidl 中定义
<EMPTY>
同意
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
<EMPTY>
HostWatcher_SetActive_Response
在 fuchsia.bluetooth.sys/host_watcher.fidl 中定义
<EMPTY>
密钥
在 fuchsia.bluetooth.sys/identity.fidl 中定义
表示 128 位密钥。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
value |
uint8[16]
|
无默认取景方式 |
LeConnectionParameters
在 fuchsia.bluetooth.sys/identity.fidl 中定义
对等方的首选 LE 连接参数。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
connection_interval |
uint16
|
无默认取景方式 | |
connection_latency |
uint16
|
无默认取景方式 | |
supervision_timeout |
uint16
|
无默认取景方式 |
LTK
在 fuchsia.bluetooth.sys/identity.fidl 中定义
表示用于链接加密的 LE 长期对等密钥。如果使用 LE 安全连接配对进行分发,则 ediv
和 rand
字段为零。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
key |
PeerKey
|
无默认取景方式 | |
ediv |
uint16
|
无默认取景方式 | |
rand |
uint64
|
无默认取景方式 |
PasskeyEntry
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
<EMPTY>
PeerKey
在 fuchsia.bluetooth.sys/identity.fidl 中定义
表示从对等方接收的键。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
security |
SecurityProperties
|
接收此密钥的此链接的安全属性。 |
无默认取景方式 |
data |
Key
|
键的内容。 |
无默认取景方式 |
SecurityProperties
在 fuchsia.bluetooth.sys/identity.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
authenticated |
bool
|
无默认取景方式 | |
secure_connections |
bool
|
无默认取景方式 | |
encryption_key_size |
uint8
|
无默认取景方式 |
枚举
BondableMode 严格
类型:uint32
在 fuchsia.bluetooth.sys/pairing_options.fidl 中定义
设备是否应在配对过程中建立蓝牙绑定。 如核心规范 v5.2 | 第 3 卷,C 部分,第 4.3 节中所述
名称 | 值 | 说明 |
---|---|---|
可绑定 |
1 |
设备将在与对等设备配对期间形成绑定 |
NON_BONDABLE |
2 |
在与对等设备配对期间,设备不会建立绑定 |
BootstrapError 严格
类型:uint32
在 fuchsia.bluetooth.sys/bootstrap.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
INVALID_HOST_IDENTITY |
1 |
|
WRITE_FAILURE |
2 |
BrEdrSecurityMode 严格
类型:uint32
在 fuchsia.bluetooth.sys/security_mode.fidl 中定义
BT 设备的 BR/EDR 安全模式决定了设备可能的安全属性。安全模式不对设备连接的当前安全属性提供具体保证,而是对允许使用的安全属性设置了限制。请参阅核心规范 v5.4 第 3 卷,C 部分 5.2.2 部分,了解更多详情。
名称 | 值 | 说明 |
---|---|---|
MODE_4 |
1 |
在 BR/EDR 安全模式 4 中,系统将使用配对设备之间的最低公约数算法对通信进行身份验证和加密。请注意,这意味着如果 SC 不受支持,所用密钥生成、身份验证和加密算法的安全性可能会低于安全连接。 |
SECURE_CONNECTIONS_ONLY |
2 |
在“仅限安全连接”模式下,设备将拒绝不支持安全连接的连接,并强制使用更长的密钥长度。 “仅限 SC”模式还会尝试强制执行对预期对等方的用户确认。由于这个原因,没有显示屏的设备(例如耳机)通常不支持 SC。 |
错误严格
类型:uint32
在 fuchsia.bluetooth.sys/access.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
失败 |
1 |
无法执行此操作。 |
PEER_NOT_FOUND |
2 |
找不到为此操作指定的对等方。 |
TIMED_OUT |
3 |
操作的时间限制已过。 |
CANCELED |
4 |
此操作已被取消。 |
IN_PROGRESS |
5 |
操作已在进行中。 |
NOT_SUPPORTED |
6 |
不支持此操作。 |
INVALID_ARGUMENTS |
7 |
为此操作提供了一组无效的参数。 |
InputCapability 严格
类型:uint32
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
用于配对交换的输入功能。 这些设置应基于本地系统输入对配对请求的响应的能力。如需了解详情,请参阅第 3 卷第 C 部分和表 5.3。
名称 | 值 | 说明 |
---|---|---|
无 |
1 |
没有可用于对配对请求响应“是”或“否”的用户输入法。 注意:设置此设置意味着大多数配对都被视为未经身份验证,并且容易受到中间机器攻击。 |
确认 |
2 |
用户可以对请求回复“是”或“否”。 |
键盘 |
3 |
用户具有键盘(或其他界面),可以在其中输入数字代码并表明已完成或取消。 |
LeSecurityMode 严格
类型:uint32
在 fuchsia.bluetooth.sys/security_mode.fidl 中定义
BLE 设备的 LE 安全模式决定了设备可能的安全属性。 安全模式不对设备连接的当前安全属性提供具体保证,而是对允许的安全属性设置了限制。如需了解更多详情,请参阅核心规范 v5.2 第 3 卷,C 部分 10.2。
名称 | 值 | 说明 |
---|---|---|
MODE_1 |
1 |
在 LE 安全模式 1 下,通信由加密保护,基于 BLE 的服务可以为加密密钥指定不同的身份验证、密钥大小或安全连接保护要求。 |
SECURE_CONNECTIONS_ONLY |
2 |
在“仅限安全连接”模式下,所有安全通信都必须使用 128 位、经过身份验证的加密密钥和 LE 安全连接生成的加密密钥。如果设备由于系统限制无法满足这些加密密钥属性,则涉及此类设备的任何连接都完全无法保护链接。此模式不会阻止未加密的通信,而只是对所有加密通信强制执行更严格的政策。 |
OutputCapability 严格
类型:uint32
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
用于配对扫描的输出功能。 这些设置应基于本地系统向发起或接受蓝牙配对的用户显示信息的能力。如需了解详情,请参阅第 3 卷第 C 部分和表 5.4。
名称 | 值 | 说明 |
---|---|---|
无 |
1 |
没有可配对的显示屏。 |
显示 |
2 |
显示屏至少可显示一个 6 位十进制数字。 |
PairingKeypress 严格
类型:uint32
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
用于在通行密钥输入进度时向同伴传达信息。各种类型的按键可用于自定义要传达给请求配对的用户的内容。
名称 | 值 | 说明 |
---|---|---|
DIGIT_ENTERED |
1 |
用户输入了一位数字。 |
DIGIT_ERASED |
2 |
用户清除了一位数字。 |
PASSKEY_CLEARED |
3 |
用户已清除整个通行密钥。 |
PASSKEY_ENTERED |
4 |
用户已完成通行密钥输入。 |
PairingMethod 严格
类型:uint32
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
安全管理器配对方法所需的不同类型。蓝牙 SIG 对不同设备功能有不同的要求。
名称 | 值 | 说明 |
---|---|---|
同意 |
1 |
系统会提示用户接受或拒绝配对。 这是最少的方法 - 即使两台设备都不支持输入或输出,系统会要求委托确认不是根据用户意图启动的任何配对。 |
PASSKEY_DISPLAY |
2 |
用户会在该设备上看到一个 6 位数的数字通行密钥,用户必须在对等设备上输入该通行密钥。 |
PASSKEY_COMPARISON |
3 |
用户会在该设备上看到一个 6 位数的数字通行密钥,该密钥也会显示在对等设备上。用户必须比较通行密钥,如果通行密钥匹配,则接受配对。 |
PASSKEY_ENTRY |
4 |
要求用户在此设备上输入一个 6 位数的通行密钥,该通行密钥通过对等设备进行通信。 |
PairingSecurityLevel 严格
类型:uint32
在 fuchsia.bluetooth.sys/pairing_options.fidl 中定义
此配对所需的安全级别 - 对应于第 3 卷 H 部分第 2.3.1 节“安全管理器协议”中定义的安全级别
名称 | 值 | 说明 |
---|---|---|
已加密 |
1 |
加密,无 MITM 保护(未经身份验证) |
已验证身份 |
2 |
采用 MITM 保护加密(经过身份验证的),尽管这种安全级别无法完全防范被动窃听者 |
技术类型严格
类型:uint32
在 fuchsia.bluetooth.sys/peer.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
LOW_ENERGY |
1 |
|
经典 |
2 |
|
DUAL_MODE |
3 |
表
BondingData
在 fuchsia.bluetooth.sys/identity.fidl 中定义
表示单个对等方的绑定数据。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
identifier |
fuchsia.bluetooth/PeerId
|
唯一标识此对等方的标识符。 |
2 |
local_address |
fuchsia.bluetooth/Address
|
与此绑定相关联的本地蓝牙身份地址。 |
3 |
name |
fuchsia.bluetooth/DeviceName
|
对等设备的名称(如果已知)。 |
6 |
address |
fuchsia.bluetooth/Address
|
对等方的身份地址。 |
7 |
le_bond |
LeBondData
|
当该对等设备在 LE 传输上配对时出现的绑定数据。 |
8 |
bredr_bond |
BredrBondData
|
当该对等端在 BR/EDR 传输上配对时出现的绑定数据。 |
BredrBondData
在 fuchsia.bluetooth.sys/identity.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
role_preference |
fuchsia.bluetooth/ConnectionRole
|
对等方的首选 Piconet 角色。这取决于角色切换过程。进行分页和从对等端建立连接时,系统不会自动设置此标志。如果不存在,则对等方尚未表示偏好。 |
2 |
services |
vector<fuchsia.bluetooth/Uuid>[65535]
|
从 EIR 数据或 SDP 中获取的已知服务 UUID。 |
3 |
link_key |
PeerKey
|
半永久性 BR/EDR 密钥。如果链接已与安全简单配对或更高级别的配对,显示此按钮。 |
HostData
在 fuchsia.bluetooth.sys/identity.fidl 中定义
表示永久性本地主机数据。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
irk |
LocalKey
|
在启用隐私保护的情况下,bt-host 设备用于生成可解析私有地址的本地身份解析密钥。 对于不使用 LE 隐私保护或仅使用不可解析的私有地址的主机,则可能不存在。 注意:在配对过程中,此密钥将分发给 LE 对等端。客户端必须谨慎分配与本地 bt-host 身份一致的 IRK。 |
HostInfo
在 fuchsia.bluetooth.sys/host_watcher.fidl 中定义
蓝牙控制器及其关联的主机子系统状态的相关信息。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
id |
fuchsia.bluetooth/HostId
|
用于唯一标识当前系统上的主机。 此字段始终显示。 |
2 |
technology |
TechnologyType
|
此适配器支持的蓝牙技术。 此字段始终显示。 |
4 |
active |
bool
|
指明此主机是否为活跃主机。系统有一个处理所有蓝牙过程的活跃主机。 |
5 |
local_name |
fuchsia.bluetooth/DeviceName
|
此主机的本地名称。当该主机处于可检测模式时,此名称对其他设备可见。 |
6 |
discoverable |
bool
|
是否可以通过 BR/EDR 和 LE 物理信道发现本地适配器。 |
7 |
discovering |
bool
|
当前是否正在执行设备发现。 |
8 |
addresses |
vector<fuchsia.bluetooth/Address>
|
与主机关联的地址(LE 和/或 BR/EDR)。 公开地址始终会先报告。 此字段始终显示。 添加:11
|
身份
在 fuchsia.bluetooth.sys/identity.fidl 中定义
表示单个主机-子系统实例的永久性配置。它用于身份呈现(查询、查询响应和通告)和绑定密钥找回(将链接数据加密到与此身份关联的对等设备)。
用于绑定的每个 BR/EDR BD_ADDR 和低功耗公共身份地址都应具有自己的 Identity 实例,其中包含相应的对等方。
每个支持 LE 隐私保护的身份实例都应具有一个与分发给其绑定对等方的身份解析密钥 (IRK) 一致的身份解析密钥 (IRK)。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
host |
HostData
|
|
2 |
bonds |
vector<BondingData>
|
使用公共身份地址的所有债券都必须包含相同的本地地址。 |
LeBondData
在 fuchsia.bluetooth.sys/identity.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
connection_parameters |
LeConnectionParameters
|
对等方的首选连接参数(如果已知)。 |
2 |
services |
vector<fuchsia.bluetooth/Uuid>[65535]
|
已知的 GATT 服务 UUID。 |
3 |
irk |
PeerKey
|
身份解析 RemoteKey(用于生成和解析随机地址)。 |
4 |
csrk |
PeerKey
|
连接签名解析 RemoteKey,用于在未加密的情况下进行数据签名。 |
5 |
peer_ltk |
Ltk
|
LE 长期密钥,用于在对等方具有 LE 外设角色时加密连接。 在旧版配对中( |
6 |
local_ltk |
Ltk
|
LE 长期密钥,用于在对等方具有 LE Central 角色时加密连接。 在旧版配对中( |
PairingDelegate2StartRequestRequest 资源
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
peer |
Peer
|
对等方发出请求。 |
2 |
info |
PairingProperties
|
配对的属性。 |
3 |
request |
PairingRequest
|
用于完成配对过程的协议。 |
PairingOptions
在 fuchsia.bluetooth.sys/pairing_options.fidl 中定义
可让调用方对配对过程进行更精细控制的参数。该表中的所有字段都是可选的,如果未设置其中任何字段,配对仍可成功。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
le_security_level |
PairingSecurityLevel
|
仅与 LE 相关。如果存在,可确定要配对的安全管理器安全级别。如果不存在,则解释为 PairingSecurityLevel.AUTHENTICATED。 |
2 |
bondable_mode |
BondableMode
|
如果传输模式为 LOW_ENERGY 或 DUAL_MODE,设备是否应在配对期间形成绑定。如果不存在,则解释为可绑定模式。 如果 transport 属性为 CLASSIC,则必须不存在此选项,或者值为 BONDABLE。 CLASSIC 传输目前不支持 NON_BONDABLE 模式 |
3 |
transport |
TechnologyType
|
如果传输模式为 LOW_ENERGY,请指明想要通过 LE 传输进行配对。 如果传输方式为 CLASSIC,请指明想要通过 Br/Edr 传输方式进行配对。 如果传输模式为 DUAL_MODE,请指明希望通过这两种传输方式进行配对。 如果不存在,则解读为 TechnologyType.DUAL_MODE |
PairingRequestAcceptRequest
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
entered_passkey |
uint32
|
对等节点
在 fuchsia.bluetooth.sys/peer.fidl 中定义
表示远程 BR/EDR、LE 或双模式 BR/EDR/LE 对等端。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
id |
fuchsia.bluetooth/PeerId
|
当前系统上该对等设备的唯一标识符。 此字段始终显示。 |
2 |
address |
fuchsia.bluetooth/Address
|
用于标识此对等设备的蓝牙设备地址。当 此字段始终显示。 注意:客户端应使用 |
3 |
technology |
TechnologyType
|
该对等端支持的蓝牙技术。 此字段始终显示。 |
4 |
connected |
bool
|
此对等端是否存在 BR/EDR 和/或 LE 连接。 此字段始终显示。 |
5 |
bonded |
bool
|
此对等方是否已绑定。 此字段始终显示。 |
6 |
name |
fuchsia.bluetooth/DeviceName
|
对等设备的名称(如果已知)。 |
7 |
appearance |
fuchsia.bluetooth/Appearance
|
LE 外观属性。表示该对等方支持 LE,并且外观信息是通过通告和/或 GATT 获取的。 |
8 |
device_class |
fuchsia.bluetooth/DeviceClass
|
此设备的设备类别(如果已知)。 |
9 |
rssi |
int8
|
此同类应用最近获取的广告信号强度。如果已知,则存在。 |
10 |
tx_power |
int8
|
此对等方最近获得的传输功率。如果已知,则存在。 |
11 |
services |
vector<fuchsia.bluetooth/Uuid>[65535]
|
已知在此对等端上可用的服务 UUID 列表。 这是一个旧字段,新代码不应依赖于此字段。 已弃用 |
12 |
le_services |
vector<fuchsia.bluetooth/Uuid>[65535]
|
已知在 LE 传输上可用的服务 UUID 列表。 如果技术为 CLASSIC,则不会显示。 |
13 |
bredr_services |
vector<fuchsia.bluetooth/Uuid>[65535]
|
之前在 BR/EDR 传输上发现的服务 UUID 的缓存列表。 如果后续搜索找不到相应服务,系统不会移除相应服务。 如果技术的值为 LOW_ENERGY,则不会显示。 这是一个旧字段,新代码不应依赖于此字段。 已弃用 |
设置
在 fuchsia.bluetooth.sys/configuration.fidl 中定义
表示可用于配置的蓝牙主机子系统参数。在蓝牙系统初始化时,每个参数都会设为默认值。每个参数的默认值可在 //src/connectivity/bluetooth/core/bt-gap/config/default.js 中找到。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
le_privacy |
bool
|
如果为 true,则启用 LE 隐私功能;如果为 false,则停用该功能。如果不存在,则保留当前值不变。启用后,所有广播本地设备地址的 BLE 过程(主动扫描、连接发起和广告)都会使用可解析私有地址类型。停用后,这些过程会显示分配给控制器的本地公共身份地址。 强烈建议为商品启用此功能。 |
2 |
le_background_scan |
bool
|
如果为 true,则启用 LE 背景扫描功能;如果为 false,则停用该功能。如果不存在,则保留当前值不变。启用后,系统会持续进行被动扫描,并与处于“可连接”或“可连接”模式的绑定对等端建立连接。 |
3 |
bredr_connectable_mode |
bool
|
如果为 true,则启用 BR/EDR 可连接模式;如果为 false,则停用该模式。如果不存在,则保留当前值不变。启用后,bt-host 设备会进入 BR/EDR 页面扫描模式并接受连接。 |
4 |
le_security_mode |
LeSecurityMode
|
如果存在,则设置主机子系统的 LE 安全模式;如果不存在,则当前值保持不变。如需了解更多详情,请参阅蓝牙核心规范 v5.2 第 3 卷 C 部分 10.2。如果存在并设置为“仅限安全连接”模式,则任何不符合“仅限安全连接”模式要求的活动连接都会断开连接。 |
5 |
bredr_security_mode |
BrEdrSecurityMode
|
如果存在,则设置主机子系统的 BR/EDR 安全模式;如果不存在,则当前值保持不变。如需了解更多详情,请参阅蓝牙核心规范 v5.2 第 3 卷第 C 部分 5.2.2。如果存在并设置为“仅限安全连接”模式,则任何不符合“仅限安全连接”模式要求的活动连接都会断开连接。 添加数量:14
|
联合
Access_Connect_Result 严格
在 fuchsia.bluetooth.sys/access.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Access_Connect_Response
|
|
2 |
err |
Error
|
Access_Disconnect_Result 严格
在 fuchsia.bluetooth.sys/access.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Access_Disconnect_Response
|
|
2 |
err |
Error
|
Access_Forget_Result 严格
在 fuchsia.bluetooth.sys/access.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Access_Forget_Response
|
|
2 |
err |
Error
|
Access_MakeDiscoverable_Result 严格
在 fuchsia.bluetooth.sys/access.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Access_MakeDiscoverable_Response
|
|
2 |
err |
Error
|
Access_Pair_Result 严格
在 fuchsia.bluetooth.sys/access.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Access_Pair_Response
|
|
2 |
err |
Error
|
Access_StartDiscovery_Result 严格
在 fuchsia.bluetooth.sys/access.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Access_StartDiscovery_Response
|
|
2 |
err |
Error
|
Bootstrap_Commit_Result 严格
在 fuchsia.bluetooth.sys/bootstrap.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Bootstrap_Commit_Response
|
|
2 |
err |
BootstrapError
|
HostWatcher_SetActive_Result 严格
在 fuchsia.bluetooth.sys/host_watcher.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
HostWatcher_SetActive_Response
|
|
2 |
err |
zx/Status
|
PairingProperties 灵活
在 fuchsia.bluetooth.sys/pairing.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
consent |
Consent
|
系统会提示用户接受或拒绝配对。 这是最少的方法 - 即使两台设备都不支持输入或输出,系统会要求委托确认不是根据用户意图启动的任何配对。 |
2 |
passkey_display |
uint32
|
用户会在该设备上看到一个 6 位数的数字通行密钥,用户必须在对等设备上输入该通行密钥。已提供要显示的通行密钥。 |
3 |
passkey_confirmation |
uint32
|
用户会在该设备上看到一个 6 位数的数字通行密钥,该密钥也会显示在对等设备上。用户必须比较通行密钥,如果通行密钥匹配,则接受配对。已提供要显示的通行密钥。 |
4 |
passkey_entry |
PasskeyEntry
|
要求用户在此设备上输入一个 6 位数的通行密钥,该通行密钥通过对等设备进行通信。 |
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
MAX_PEER_SERVICES |
65535
|
uint16 |
每项传输发现的服务数上限。目前设置为用于访问服务的有效 16 位句柄或 PSM 的数量。 |
别名
名称 | 值 | 说明 |
---|---|---|
LocalKey |
fuchsia.bluetooth.sys/Key |
表示分布在一个或多个键的本地生成的密钥。 |