Fuchsia.bluetooth.sys

添加次数:7

协议

访问

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 传输中,将系统设置为“可发现”模式。活跃主机将响应一般查询(通过定期进入查询扫描模式)。

  • 如果无法进入查询模式,则报告 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。

已废弃:HEAD添加:7

请求

名称类型
input InputCapability
output OutputCapability
delegate PairingDelegate

StartDiscovery

启动常规发现过程。所有可检测到的常规 BR/EDR、LE 和 BR/EDR/LE 设备都会显示在对等列表中,可以通过调用 fuchsia.bluetooth.sys/Access.WatchPeers 进行观察。

  • 如果无法启动任一传输上的发现,则报告 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 中定义

允许系统客户端启用蓝牙配对。

添加了:HEAD

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

添加了:HEAD

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 - 未检测到活动,配对已停止
添加了:HEAD

接受

接受配对请求。如果使用了 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 中定义

表示活动过程。支持此协议的句柄的有效性取决于它所附加到的过程的活动。详细说明如下:

  1. 关闭令牌句柄会结束其所属的过程。
  2. 系统会关闭令牌句柄,以告知程序已在内部终止。

结构

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 安全连接配对进行分发,则 edivrand 字段为零。

字段类型说明默认
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

设备将在与对等设备配对期间形成绑定

2

在与对等设备配对期间,设备不会建立绑定

BootstrapError 严格

类型:uint32

fuchsia.bluetooth.sys/bootstrap.fidl 中定义

名称说明
1
2

BrEdrSecurityMode 严格

类型:uint32

fuchsia.bluetooth.sys/security_mode.fidl 中定义

BT 设备的 BR/EDR 安全模式决定了设备可能的安全属性。安全模式不对设备连接的当前安全属性提供具体保证,而是对允许使用的安全属性设置了限制。请参阅核心规范 v5.4 第 3 卷,C 部分 5.2.2 部分,了解更多详情。

添加数量:14

名称说明
1

在 BR/EDR 安全模式 4 中,系统将使用配对设备之间的最低公约数算法对通信进行身份验证和加密。请注意,这意味着如果 SC 不受支持,所用密钥生成、身份验证和加密算法的安全性可能会低于安全连接。

2

在“仅限安全连接”模式下,设备将拒绝不支持安全连接的连接,并强制使用更长的密钥长度。

“仅限 SC”模式还会尝试强制执行对预期对等方的用户确认。由于这个原因,没有显示屏的设备(例如耳机)通常不支持 SC。

错误严格

类型:uint32

fuchsia.bluetooth.sys/access.fidl 中定义

名称说明
1

无法执行此操作。

2

找不到为此操作指定的对等方。

3

操作的时间限制已过。

4

此操作已被取消。

5

操作已在进行中。

6

不支持此操作。

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。

名称说明
1

在 LE 安全模式 1 下,通信由加密保护,基于 BLE 的服务可以为加密密钥指定不同的身份验证、密钥大小或安全连接保护要求。

2

在“仅限安全连接”模式下,所有安全通信都必须使用 128 位、经过身份验证的加密密钥和 LE 安全连接生成的加密密钥。如果设备由于系统限制无法满足这些加密密钥属性,则涉及此类设备的任何连接都完全无法保护链接。此模式不会阻止未加密的通信,而只是对所有加密通信强制执行更严格的政策。

OutputCapability 严格

类型:uint32

fuchsia.bluetooth.sys/pairing.fidl 中定义

用于配对扫描的输出功能。 这些设置应基于本地系统向发起或接受蓝牙配对的用户显示信息的能力。如需了解详情,请参阅第 3 卷第 C 部分和表 5.4。

名称说明
1

没有可配对的显示屏。

2

显示屏至少可显示一个 6 位十进制数字。

PairingKeypress 严格

类型:uint32

fuchsia.bluetooth.sys/pairing.fidl 中定义

用于在通行密钥输入进度时向同伴传达信息。各种类型的按键可用于自定义要传达给请求配对的用户的内容。

名称说明
1

用户输入了一位数字。

2

用户清除了一位数字。

3

用户已清除整个通行密钥。

4

用户已完成通行密钥输入。

PairingMethod 严格

类型:uint32

fuchsia.bluetooth.sys/pairing.fidl 中定义

安全管理器配对方法所需的不同类型。蓝牙 SIG 对不同设备功能有不同的要求。

名称说明
1

系统会提示用户接受或拒绝配对。 这是最少的方法 - 即使两台设备都不支持输入或输出,系统会要求委托确认不是根据用户意图启动的任何配对。

2

用户会在该设备上看到一个 6 位数的数字通行密钥,用户必须在对等设备上输入该通行密钥。

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 中定义

名称说明
1
2
3

BondingData

fuchsia.bluetooth.sys/identity.fidl 中定义

表示单个对等方的绑定数据。

序数字段类型说明
identifier fuchsia.bluetooth/PeerId

唯一标识此对等方的标识符。

local_address fuchsia.bluetooth/Address

与此绑定相关联的本地蓝牙身份地址。

name fuchsia.bluetooth/DeviceName

对等设备的名称(如果已知)。

address fuchsia.bluetooth/Address

对等方的身份地址。

le_bond LeBondData

当该对等设备在 LE 传输上配对时出现的绑定数据。

bredr_bond BredrBondData

当该对等端在 BR/EDR 传输上配对时出现的绑定数据。

BredrBondData

fuchsia.bluetooth.sys/identity.fidl 中定义

序数字段类型说明
role_preference fuchsia.bluetooth/ConnectionRole

对等方的首选 Piconet 角色。这取决于角色切换过程。进行分页和从对等端建立连接时,系统不会自动设置此标志。如果不存在,则对等方尚未表示偏好。

services vector<fuchsia.bluetooth/Uuid>[65535]

从 EIR 数据或 SDP 中获取的已知服务 UUID。

HostData

fuchsia.bluetooth.sys/identity.fidl 中定义

表示永久性本地主机数据。

序数字段类型说明
irk LocalKey

在启用隐私保护的情况下,bt-host 设备用于生成可解析私有地址的本地身份解析密钥。

对于不使用 LE 隐私保护或仅使用不可解析的私有地址的主机,则可能不存在。

注意:在配对过程中,此密钥将分发给 LE 对等端。客户端必须谨慎分配与本地 bt-host 身份一致的 IRK。

HostInfo

fuchsia.bluetooth.sys/host_watcher.fidl 中定义

蓝牙控制器及其关联的主机子系统状态的相关信息。

序数字段类型说明
id fuchsia.bluetooth/HostId

用于唯一标识当前系统上的主机。

此字段始终显示。

technology TechnologyType

此适配器支持的蓝牙技术。

此字段始终显示。

active bool

指明此主机是否为活跃主机。系统有一个处理所有蓝牙过程的活跃主机。

local_name fuchsia.bluetooth/DeviceName

此主机的本地名称。当该主机处于可检测模式时,此名称对其他设备可见。

discoverable bool

是否可以通过 BR/EDR 和 LE 物理信道发现本地适配器。

discovering bool

当前是否正在执行设备发现。

addresses vector<fuchsia.bluetooth/Address>

与主机关联的地址(LE 和/或 BR/EDR)。

公开地址始终会先报告。

此字段始终显示。

添加:11

身份

fuchsia.bluetooth.sys/identity.fidl 中定义

表示单个主机-子系统实例的永久性配置。它用于身份呈现(查询、查询响应和通告)和绑定密钥找回(将链接数据加密到与此身份关联的对等设备)。

用于绑定的每个 BR/EDR BD_ADDR 和低功耗公共身份地址都应具有自己的 Identity 实例,其中包含相应的对等方。

每个支持 LE 隐私保护的身份实例都应具有一个与分发给其绑定对等方的身份解析密钥 (IRK) 一致的身份解析密钥 (IRK)。

序数字段类型说明
host HostData
bonds vector<BondingData>

使用公共身份地址的所有债券都必须包含相同的本地地址。

LeBondData

fuchsia.bluetooth.sys/identity.fidl 中定义

序数字段类型说明
connection_parameters LeConnectionParameters

对等方的首选连接参数(如果已知)。

services vector<fuchsia.bluetooth/Uuid>[65535]

已知的 GATT 服务 UUID。

irk PeerKey

身份解析 RemoteKey(用于生成和解析随机地址)。

csrk PeerKey

连接签名解析 RemoteKey,用于在未加密的情况下进行数据签名。

peer_ltk Ltk

LE 长期密钥,用于在对等方具有 LE 外设角色时加密连接。

在旧版配对中(peer_ltk.security.secure_connections 为 false),此密钥对应于对等方分配的密钥。在安全连接配对中,只有一个 LTK,并且 peer_ltklocal_ltk 相同。

local_ltk Ltk

LE 长期密钥,用于在对等方具有 LE Central 角色时加密连接。

在旧版配对中(local_ltk.security.secure_connections 为 false),此密钥与本地设备分配的密钥相对应。在安全连接配对中,只有一个 LTK,并且 local_ltkpeer_ltk 相同。

PairingDelegate2StartRequestRequest 资源

fuchsia.bluetooth.sys/pairing.fidl 中定义

序数字段类型说明
peer Peer

对等方发出请求。

info PairingProperties

配对的属性。

request PairingRequest

用于完成配对过程的协议。

PairingOptions

fuchsia.bluetooth.sys/pairing_options.fidl 中定义

可让调用方对配对过程进行更精细控制的参数。该表中的所有字段都是可选的,如果未设置其中任何字段,配对仍可成功。

序数字段类型说明
le_security_level PairingSecurityLevel

仅与 LE 相关。如果存在,可确定要配对的安全管理器安全级别。如果不存在,则解释为 PairingSecurityLevel.AUTHENTICATED。

bondable_mode BondableMode

如果传输模式为 LOW_ENERGY 或 DUAL_MODE,设备是否应在配对期间形成绑定。如果不存在,则解释为可绑定模式。

如果 transport 属性为 CLASSIC,则必须不存在此选项,或者值为 BONDABLE。 CLASSIC 传输目前不支持 NON_BONDABLE 模式

transport TechnologyType

如果传输模式为 LOW_ENERGY,请指明想要通过 LE 传输进行配对。 如果传输方式为 CLASSIC,请指明想要通过 Br/Edr 传输方式进行配对。 如果传输模式为 DUAL_MODE,请指明希望通过这两种传输方式进行配对。 如果不存在,则解读为 TechnologyType.DUAL_MODE

PairingRequestAcceptRequest

fuchsia.bluetooth.sys/pairing.fidl 中定义

序数字段类型说明
entered_passkey uint32

对等节点

fuchsia.bluetooth.sys/peer.fidl 中定义

表示远程 BR/EDR、LE 或双模式 BR/EDR/LE 对等端。

序数字段类型说明
id fuchsia.bluetooth/PeerId

当前系统上该对等设备的唯一标识符。

此字段始终显示。

address fuchsia.bluetooth/Address

用于标识此对等设备的蓝牙设备地址。当 name 不可用时,客户端应向用户显示此字段。

此字段始终显示。

注意:客户端应使用 identifier 字段(而不是其地址)来跟踪对等方。

technology TechnologyType

该对等端支持的蓝牙技术。

此字段始终显示。

connected bool

此对等端是否存在 BR/EDR 和/或 LE 连接。

此字段始终显示。

bonded bool

此对等方是否已绑定。

此字段始终显示。

name fuchsia.bluetooth/DeviceName

对等设备的名称(如果已知)。

appearance fuchsia.bluetooth/Appearance

LE 外观属性。表示该对等方支持 LE,并且外观信息是通过通告和/或 GATT 获取的。

device_class fuchsia.bluetooth/DeviceClass

此设备的设备类别(如果已知)。

rssi int8

此同类应用最近获取的广告信号强度。如果已知,则存在。

tx_power int8

此对等方最近获得的传输功率。如果已知,则存在。

services vector<fuchsia.bluetooth/Uuid>[65535]

已知在此对等端上可用的服务 UUID 列表。

这是一个旧字段,新代码不应依赖于此字段。

已弃用

le_services vector<fuchsia.bluetooth/Uuid>[65535]

已知在 LE 传输上可用的服务 UUID 列表。

如果技术为 CLASSIC,则不会显示。

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 中找到。

序数字段类型说明
le_privacy bool

如果为 true,则启用 LE 隐私功能;如果为 false,则停用该功能。如果不存在,则保留当前值不变。启用后,所有广播本地设备地址的 BLE 过程(主动扫描、连接发起和广告)都会使用可解析私有地址类型。停用后,这些过程会显示分配给控制器的本地公共身份地址。

强烈建议为商品启用此功能。

le_background_scan bool

如果为 true,则启用 LE 背景扫描功能;如果为 false,则停用该功能。如果不存在,则保留当前值不变。启用后,系统会持续进行被动扫描,并与处于“可连接”或“可连接”模式的绑定对等端建立连接。

bredr_connectable_mode bool

如果为 true,则启用 BR/EDR 可连接模式;如果为 false,则停用该模式。如果不存在,则保留当前值不变。启用后,bt-host 设备会进入 BR/EDR 页面扫描模式并接受连接。

le_security_mode LeSecurityMode

如果存在,则设置主机子系统的 LE 安全模式;如果不存在,则当前值保持不变。如需了解更多详情,请参阅蓝牙核心规范 v5.2 第 3 卷 C 部分 10.2。如果存在并设置为“仅限安全连接”模式,则任何不符合“仅限安全连接”模式要求的活动连接都会断开连接。

bredr_security_mode BrEdrSecurityMode

如果存在,则设置主机子系统的 BR/EDR 安全模式;如果不存在,则当前值保持不变。如需了解更多详情,请参阅蓝牙核心规范 v5.2 第 3 卷第 C 部分 5.2.2。如果存在并设置为“仅限安全连接”模式,则任何不符合“仅限安全连接”模式要求的活动连接都会断开连接。

添加数量:14

联合

Access_Connect_Result 严格

fuchsia.bluetooth.sys/access.fidl 中定义

序数变体类型说明
response Access_Connect_Response
err Error

Access_Disconnect_Result 严格

fuchsia.bluetooth.sys/access.fidl 中定义

序数变体类型说明
response Access_Disconnect_Response
err Error

Access_Forget_Result 严格

fuchsia.bluetooth.sys/access.fidl 中定义

序数变体类型说明
response Access_Forget_Response
err Error

Access_MakeDiscoverable_Result 严格

fuchsia.bluetooth.sys/access.fidl 中定义

序数变体类型说明
response Access_MakeDiscoverable_Response
err Error

Access_Pair_Result 严格

fuchsia.bluetooth.sys/access.fidl 中定义

序数变体类型说明
response Access_Pair_Response
err Error

Access_StartDiscovery_Result 严格

fuchsia.bluetooth.sys/access.fidl 中定义

序数变体类型说明
response Access_StartDiscovery_Response
err Error

Bootstrap_Commit_Result 严格

fuchsia.bluetooth.sys/bootstrap.fidl 中定义

序数变体类型说明
response Bootstrap_Commit_Response
err BootstrapError

HostWatcher_SetActive_Result 严格

fuchsia.bluetooth.sys/host_watcher.fidl 中定义

序数变体类型说明
response HostWatcher_SetActive_Response
err zx/Status

PairingProperties 灵活

fuchsia.bluetooth.sys/pairing.fidl 中定义

添加了:HEAD
序数变体类型说明
consent Consent

系统会提示用户接受或拒绝配对。 这是最少的方法 - 即使两台设备都不支持输入或输出,系统会要求委托确认不是根据用户意图启动的任何配对。

passkey_display uint32

用户会在该设备上看到一个 6 位数的数字通行密钥,用户必须在对等设备上输入该通行密钥。已提供要显示的通行密钥。

passkey_confirmation uint32

用户会在该设备上看到一个 6 位数的数字通行密钥,该密钥也会显示在对等设备上。用户必须比较通行密钥,如果通行密钥匹配,则接受配对。已提供要显示的通行密钥。

4

passkey_entry PasskeyEntry

要求用户在此设备上输入一个 6 位数的通行密钥,该通行密钥通过对等设备进行通信。

常量

名称类型说明
MAX_PEER_SERVICES 65535 uint16

每项传输发现的服务数上限。目前设置为用于访问服务的有效 16 位句柄或 PSM 的数量。

别名

名称说明
LocalKey fuchsia.bluetooth.sys/Key

表示分布在一个或多个键的本地生成的密钥。