Fuchsia.bluetooth.le

新增:7

协议

AdvertisedPeripheral

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

在通告期间有效的协议。调用方可以关闭协议以停止通告。如果系统因任何原因在内部停止通告,则协议将关闭,以便将此情况传达给客户端。

OnConnected

当通过 fuchsia.bluetooth.le/Peripheral.Advertise 启用可连接广播时,如果远程 LE 中心连接到此外围设备,则会调用此方法。进行此调用时,系统已暂停通告,并且在收到响应之前不会继续。

返回的 fuchsia.bluetooth.le/Connection 协议可用于与对等设备进行交互。它还表示外围设备对连接的所有权:客户端可以丢弃协议以请求断开连接。同样,系统会关闭协议,以指示与对等方的连接已丢失。

  • 请求 peer 发起连接的中心设备的相关信息。
  • 请求 connection 表示连接。
  • 响应:应发送空响应,以确认连接并恢复通告(用于流控制)。

请求

名称类型
peer Peer
connection client_end:Connection

响应

<EMPTY>

AdvertisingHandle

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

在广告投放期间有效的功能。调用方可以关闭句柄以停止通告。如果系统因任何原因在内部停止通告,则句柄将关闭,以便将此情况传达给客户端。

中部

在 fuchsia.bluetooth.le/central.fidl 中定义

关联

连接到具有给定标识符的对等设备。

请求的 fuchsia.bluetooth.le/Connection 表示客户端对与对等方的 LE 连接的兴趣。关闭通道会移除兴趣,但如果另一个客户端持有与同一对等方的有效 fuchsia.bluetooth.le/Connection,则可能不会导致断开连接。

如果与对等设备的连接丢失或发生错误,系统将关闭 fuchsia.bluetooth.le/Connection handle。

服务器可能会在出错时发送以下墓志铭:

  • INVALID_ARGS:部分参数无效。

  • ALREADY_BOUND:此中央设备已与对等设备建立连接。应使用现有连接。

  • NOT_CONNECTED:无法建立连接。

  • CONNECTION_RESET:对等方已断开连接。

  • request id 要发起连接的对等端的标识符。

  • request options 用于配置连接的选项。

  • 请求 handle 句柄,在连接期间保持有效。

新增:24

请求

名称类型
id fuchsia.bluetooth/PeerId
options ConnectionOptions
handle server_end:Connection

ConnectPeripheral

创建与具有给定标识符的外围设备的连接。 返回 status 中操作的状态。

成功后,gatt_client 将被绑定,并可用于 GATT 客户端角色过程。如果失败,gatt_client 将关闭,status 将指示错误。

已弃用 - 请改用 Connect

请求

名称类型
identifier fuchsia.bluetooth/PeerIdString
options ConnectionOptions
gatt_client server_end:fuchsia.bluetooth.gatt/Client

响应

名称类型
status fuchsia.bluetooth/Status

CreateConnectedIsochronousGroup

使用指定参数创建新的连接同步组 (CIG)。此操作仅在连接中以中心角色操作时有效。

如果在明确移除 CIG 之前关闭了中央通道,则该组将被移除并断开连接。

如果失败,则返回错误代码,请参阅 CreateCigError。成功后,返回由主机分配的唯一 ID。

新增:27

请求

名称类型
payload CentralCreateConnectedIsochronousGroupRequest

响应

名称类型
payload Central_CreateConnectedIsochronousGroup_Result

DisconnectPeripheral

断开此 Central 与具有给定标识符的外围设备的连接。

已弃用

请求

名称类型
identifier fuchsia.bluetooth/PeerIdString

响应

名称类型
status fuchsia.bluetooth/Status

GetPeripheral

此方法未由 Fuchsia 核心堆栈实现 - TODO(https://fxbug.dev/42087303)

根据唯一标识符,返回系统从之前的扫描、连接和/或绑定过程中了解到的单个外围设备的相关信息。如果无法识别 identifier,则返回 null。

已弃用

请求

名称类型
identifier fuchsia.bluetooth/PeerIdString

响应

名称类型
peripheral RemoteDevice?

GetPeripherals

返回系统通过之前的扫描、连接和/或绑定过程已知的外围设备列表。可以根据已知存在于外围设备上的服务 UUID 过滤结果。

此方法仅返回外围设备(即可连接的设备)。

已弃用

请求

名称类型
service_uuids vector<fuchsia.bluetooth/UuidString>?

响应

名称类型
peripherals vector<RemoteDevice>

ListenL2cap

为传入频道注册监听器。注册表将分配一个对本地设备而言唯一的 PSM 值,并打开一个 ChannelListener 以接受传入通道。在极少数情况下,如果所有 PSM 都已分配,此调用将失败并返回 ZX_ERR_NO_RESOURCES。

请注意,服务发现或通告的方法由服务或协议定义,因此调用方负责将分配的 PSM 传达给所有客户端。

请求

名称类型
payload ChannelListenerRegistryListenL2capRequest

响应

名称类型
payload ChannelListenerRegistry_ListenL2cap_Result

OnDeviceDiscovered

针对在扫描会话期间发现的每个外围设备/广播器调用。rssi 包含生成此事件的通告数据包的接收信号强度(如果有)。

已弃用

响应

名称类型
device RemoteDevice

OnPeripheralDisconnected

当此中央设备与具有给定标识符的外围设备的连接终止时调用。

已弃用

响应

名称类型
identifier fuchsia.bluetooth/PeerIdString

OnScanStateChanged

在扫描状态发生变化时调用,例如,当扫描会话因调用 Central.StopScan() 或其他意外情况而终止时。

已弃用

响应

名称类型
scanning bool

扫描

扫描附近的 LE 外围设备和广播设备。如果无法启动扫描,result_watcher 将关闭并显示墓志铭。

一个中央客户端一次只能有一个活跃扫描。因此,一次只能有一个扫描请求处于未完成状态。 对 Scan 的其他调用将失败。

扫描会话的生命周期与提供的 result_watcher 协议相关联。如果频道关闭,扫描将停止。

扫描开始后,可以使用 fuchsia.bluetooth.le/ScanResultWatcher 监控扫描结果。

  • request options 用于配置扫描会话的选项。
  • 请求 result_watcher 协议,该协议在此扫描会话期间保持有效。
  • 响应:系统将发送空响应,以确认扫描已停止。

服务器可能会在出错时发送以下墓志铭:

  • 错误 ALREADY_EXISTS:扫描已在进行中。每个 Central 协议仅允许 1 次主动扫描。
  • 错误 INVALID_ARGS:部分扫描 options 无效。请参阅 ScanOptions 文档。
  • 错误 INTERNAL:发生内部错误,无法启动扫描。

请求

名称类型
options ScanOptions
result_watcher server_end:ScanResultWatcher

响应

<EMPTY>

StartScan

启动扫描会话,以查找附近的外围设备和广播设备。系统会通过 CentralDelegate.OnDeviceDiscovered() 报告发现的设备。如果扫描会话已在进行中,filter 将替换现有会话的过滤器。

如果 filter 为 null 或空(即其所有字段均未填充),则系统会针对找到的所有可检测到的设备通知委托。不建议这样做;客户端通常应至少按 filter.service_uuids、filter.service_data 和/或 filter.manufacturer_identifier 之一过滤结果。

已弃用 - 请改用“扫描”

请求

名称类型
filter ScanFilter?

响应

名称类型
status fuchsia.bluetooth/Status

StopScan

终止之前启动的扫描会话。

已弃用

请求

<EMPTY>

SyncToPeriodicAdvertising

同步到周期性广播序列。报告将通过 PeriodicAdvertisingSync 协议传送。

新增:28

请求

名称类型
payload CentralSyncToPeriodicAdvertisingRequest

ChannelListener

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

表示接受传入频道请求的服务或协议。 关联的 PSM 的传入通道请求将通过此协议进行连接。关闭此协议还会停止接受任何传入的通道请求,但现有的已建立通道不会受到影响。此外,一旦此协议关闭,实现就可以自由地重复使用之前为此实例分配的 PSM。

新增:24

接受

已移除:31

请求

名称类型
channel client_end:fuchsia.bluetooth/Channel

响应

名称类型
payload ChannelListener_Accept_Result

已连接

在每次成功建立传入通道连接时调用。

新增:31

请求

名称类型
payload ChannelListenerConnectedRequest

响应

名称类型
payload ChannelListener_Connected_Result

ChannelListenerRegistry

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

表示能够在面向连接的通道上注册和接受传入连接。

新增:24

ListenL2cap

为传入频道注册监听器。注册表将分配一个对本地设备而言唯一的 PSM 值,并打开一个 ChannelListener 以接受传入通道。在极少数情况下,如果所有 PSM 都已分配,此调用将失败并返回 ZX_ERR_NO_RESOURCES。

请注意,服务发现或通告的方法由服务或协议定义,因此调用方负责将分配的 PSM 传达给所有客户端。

请求

名称类型
payload ChannelListenerRegistryListenL2capRequest

响应

名称类型
payload ChannelListenerRegistry_ListenL2cap_Result

ChannelOffloadExt

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

bt.Channel 的协议扩展。这通常由特权客户端提供或提供给特权客户端,并附带 bt.Channel。此协议可以在 StartOffload 返回之前或之后关闭,不会产生任何影响。

新增:31

StartOffload

必须在 Channel.Receive() 之前调用 StartOffload。分流通道将向对等方提供 0 个 RX 积分,以防止对等方在分流处理器准备就绪之前发送数据。此方法最多可调用一次。

系统可能会返回以下错误:

  • 错误 BAD_STATE:Channel.Receive() 已被调用,或 StartOffload() 已被调用。
  • 错误 INTERNAL:发生内部错误,无法卸载频道。

请求

名称类型
payload ChannelOffloadExtStartOffloadRequest

响应

名称类型
payload ChannelOffloadExt_StartOffload_Result

CodecDelay

在 fuchsia.bluetooth.le/codec_delay.fidl 中定义

此协议使我们能够检索控制器本地延迟值。它不应单独使用,而应组合到需要访问此信息的协议中。

新增:24

GetCodecLocalDelayRange

检索使用提供的流属性指定的编解码器的控制器延迟时间范围。

成功后,返回允许的最小和最大延迟时间。

如果不支持读取延迟时间,则返回 ZX_ERR_NOT_SUPPORTED。 对于所有其他故障,返回 ZX_ERR_INTERNAL。

请求

名称类型
payload CodecDelayGetCodecLocalDelayRangeRequest

响应

名称类型
payload CodecDelay_GetCodecLocalDelayRange_Result

ConnectedIsochronousGroup

在 fuchsia.bluetooth.le/iso.fidl 中定义

新增:27

EstablishStreams

连接一个或多个等时流。每个 CIS 都是与参数中指定的对等方建立的。成功启动操作后,系统会在 IsochronousStream 上发送 OnEstablished() 事件。

一次只能有一个 EstablishStreams 调用处于活动状态。在另一个通道处于待处理状态时调用 EstablishStreams 会导致通道关闭并显示 ZX_ERR_BAD_STATE。

如果发生错误,则不会建立任何 CIS,并且系统会返回相应的 EstablishStreamsError 代码。

否则,此调用会在每个指定的 CIS 连接后返回。

请求

名称类型
payload ConnectedIsochronousGroupEstablishStreamsRequest

响应

名称类型
payload ConnectedIsochronousGroup_EstablishStreams_Result

移除

移除此 CIG。关联的直播将会关闭。在所有关联的流都已关闭且群组已被移除后,此协议将关闭。

请求

<EMPTY>

连接

在 fuchsia.bluetooth.le/peer.fidl 中定义

表示与对等体连接的协议。这可用于与 GATT 服务交互并建立 L2CAP 通道。

此功能的生命周期与它所代表的 LE 连接的生命周期相关联。如果没有其他客户端持有与同一对等端的连接,则关闭通道会导致断开连接。

AcceptCis

接受来自具有指定 CIG/CIS 值的对等设备的未来 CIS 请求。所有未明确允许的 CIS 请求都将被拒绝。

提供的 IsochronousStream 将用于未来通知已建立的连接。

主机可以同时等待多个传入连接,但每个连接都必须具有对此连接而言唯一的 CIG/CIS 值组合。

如果在此连接中我们不充当外围设备角色,connection_stream 将关闭,并显示 ZX_ERR_NOT_SUPPORTED 墓志铭。

如果我们已经在等待具有相同 CIG/CIS 值组合的其他连接,则 connection_stream 将关闭,并显示 ZX_ERR_INVALID_ARGS 墓志铭。

新增:24

请求

名称类型
payload ConnectionAcceptCisRequest

AcceptPeriodicAdvertisingSyncTransfer

接受来自对等设备的下一个定期广播同步传输。当主持人准备好接受转移时,系统会发送回复。一次只能有一个待处理请求。

新增:28

请求

名称类型
payload ConnectionAcceptPeriodicAdvertisingSyncTransferRequest

响应

名称类型
payload Connection_AcceptPeriodicAdvertisingSyncTransfer_Result

ConnectL2cap

连接到 L2CAP LE 面向连接的通道。

新增:24

请求

名称类型
payload ConnectionConnectL2capRequest

GetCodecLocalDelayRange

检索使用提供的流属性指定的编解码器的控制器延迟时间范围。

成功后,返回允许的最小和最大延迟时间。

如果不支持读取延迟时间,则返回 ZX_ERR_NOT_SUPPORTED。 对于所有其他故障,返回 ZX_ERR_INTERNAL。

请求

名称类型
payload CodecDelayGetCodecLocalDelayRangeRequest

响应

名称类型
payload CodecDelay_GetCodecLocalDelayRange_Result

RequestGattClient

服务器可能会在出错时发送以下墓志铭:

  • ZX_ERR_ALREADY_BOUND:客户端服务器已绑定到此连接协议。应使用现有客户端。
新增:24

请求

名称类型
client server_end:fuchsia.bluetooth.gatt2/Client

TransferPeriodicAdvertisingSync

将由 sync_id 标识的周期性通告序列的同步信息发送到已连接的对等设备。

新增:28

请求

名称类型
payload ConnectionTransferPeriodicAdvertisingSyncRequest

响应

名称类型
payload Connection_TransferPeriodicAdvertisingSync_Result

IsochronousStream

在 fuchsia.bluetooth.le/iso.fidl 中定义

新增:24

OnEstablished

当 CIS 建立时(由中央设备通过 ConnectedIsochronousGroup/EstablishStreams 发起,或由外围设备通过 Connection/AcceptCis 发起),提供通知。

响应

名称类型
payload IsochronousStreamOnEstablishedRequest

读取

从已建立并设置的输出(控制器 => 主机)ISO 流接收数据。旨在与挂起获取模式搭配使用。

可以在 ISO 数据流建立和设置之前调用,但只有在设置完成并收到数据后才会返回。

请求

<EMPTY>

响应

名称类型
payload IsochronousStream_Read_Result

SetupDataPath

使用指定参数创建等时数据路径。目前仅支持带内 (HCI) ISO 传输。

如果已为此方向创建 ISO 流,则返回 ZX_ERR_ALREADY_EXISTS。

如果在接受 CIS 请求之前在外围设备上发出,则返回 ZX_ERR_BAD_STATE。

如果编解码器参数无效或超出控制器支持的范围,则返回 ZX_ERR_INVALID_ARGS。

请求

名称类型
payload IsochronousStreamSetupDataPathRequest

响应

名称类型
payload IsochronousStream_SetupDataPath_Result

写入

将数据发送到已建立的 ISO 流(主机 => 控制器)。

如果遇到任何错误,则返回 ZX_ERR_INTERNAL。

新增:27

请求

名称类型
payload IsochronousStreamWriteRequest

响应

名称类型
payload IsochronousStream_Write_Result

PeriodicAdvertisingSync

在 fuchsia.bluetooth.le/periodic.fidl 中定义

当同步未能建立或丢失时,由服务器关闭。

新增:28

取消

服务器将结束同步,然后关闭协议。 如果其他客户端同步到同一周期性通告,则同步不会取消。 您也可以通过在客户端关闭协议来取消同步。

请求

<EMPTY>

OnError

在无法建立同步或同步丢失(在 OnEstablished 之后)时发送。发送此事件后,协议将关闭。

响应

名称类型
error PeriodicAdvertisingSyncError

OnEstablished

在建立同步时发送一次。

响应

名称类型
payload PeriodicAdvertisingSyncOnEstablishedRequest

SyncToSubevents

同步到此周期性广播的子事件。

  • error FAILED: The synchronization failed.

请求

名称类型
payload PeriodicAdvertisingSyncSyncToSubeventsRequest

响应

名称类型
payload PeriodicAdvertisingSync_SyncToSubevents_Result

WatchAdvertisingReport

返回后续广告报告。挂起,直到收到下一个通告。 一次只能有一个待处理的调用。

请求

<EMPTY>

响应

名称类型
payload PeriodicAdvertisingSync_WatchAdvertisingReport_Result

外围设备

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

广告

开始作为 LE 外围设备持续通告。如果无法启动通告,则 advertised_peripheral 将关闭并返回错误。

此方法的调用次数不受限制。如需重新配置通告,请先关闭原始通告,然后在返回空响应后启动新通告。

如果客户端关闭其 fuchsia.bluetooth.le/AdvertisedPeripheral 通道端,通告将停止。如果句柄在请求完成之前关闭,则通告可能会在终止之前短暂启用。AdvertisedPeripheral 的生命周期受 Peripheral 协议的生命周期限制,但未来可能会发生变化 (https://fxbug.dev/42157682)。

  • request parameters 配置通告实例时使用的参数。
  • 请求 advertised_peripheral 协议,该协议在此广告会话期间保持有效。
  • 响应:当广告成功停止时(由于 advertised_peripheral 协议的发布),系统会发送空响应。为防止出现类似的重叠通告以及因通告资源有限而导致的暂时性错误,建议您在再次调用 Advertise 之前等待响应。
  • error 如果发生错误,advertised_peripheral 将关闭,并返回 PeripheralError。

请求

名称类型
parameters AdvertisingParameters
advertised_peripheral client_end:AdvertisedPeripheral

响应

名称类型
payload Peripheral_Advertise_Result

ListenL2cap

为传入频道注册监听器。注册表将分配一个对本地设备而言唯一的 PSM 值,并打开一个 ChannelListener 以接受传入通道。在极少数情况下,如果所有 PSM 都已分配,此调用将失败并返回 ZX_ERR_NO_RESOURCES。

请注意,服务发现或通告的方法由服务或协议定义,因此调用方负责将分配的 PSM 传达给所有客户端。

请求

名称类型
payload ChannelListenerRegistryListenL2capRequest

响应

名称类型
payload ChannelListenerRegistry_ListenL2cap_Result

OnPeerConnected

当通过 fuchsia.bluetooth.le/Peripheral.StartAdvertising 启用可连接通告时,如果远程 LE 中心发起与此外围设备的连接,则会传送事件。

返回的 fuchsia.bluetooth.le/Connection 句柄可用于与对等设备进行交互。它还表示外围设备对连接的所有权:客户端可以丢弃句柄以请求断开连接。同样,系统会关闭句柄,以指示与对等端的连接已断开。

  • 请求 peer 发起连接的中心设备的相关信息。
  • 请求 connection 表示连接。

已弃用 - 请改用 AdvertisedPeripheral.OnConnected

响应

名称类型
peer Peer
connection client_end:Connection

StartAdvertising

开始作为 LE 外围设备进行通告。系统会发送一个空响应,以指示通告已成功启动。如果无法启动通告,则响应将包含 fuchsia.bluetooth.le/PeripheralError。

此方法可以调用任意次数,并且可以连续调用以重新配置通告参数。不过,只有最新的 fuchsia.bluetooth.le/AdvertisingHandle 仍然有效。

fuchsia.bluetooth.le/Peripheral 的实例一次只能有一个有效通告。客户端必须获取多个 Peripheral 实例,才能同时进行多项通告。

如果客户端关闭其 fuchsia.bluetooth.le/AdvertisingHandle 通道端,通告将停止。如果句柄在请求完成之前关闭,则通告会在终止之前短暂启用。

  • request parameters:配置通告实例时使用的参数。
  • 请求 handle 句柄,该句柄在此通告会话期间保持有效。

已弃用

请求

名称类型
parameters AdvertisingParameters
handle server_end:AdvertisingHandle

响应

名称类型
payload Peripheral_StartAdvertising_Result

PrivilegedCentral

在 fuchsia.bluetooth.le/central.fidl 中定义

Central 协议的特权版本,提供套接字分流等高级功能。由于此协议包含敏感信息和功能,因此只能路由到受信任的系统组件。

新增:31

关联

连接到具有给定标识符的对等设备。

请求的 fuchsia.bluetooth.le/Connection 表示客户端对与对等方的 LE 连接的兴趣。关闭通道会移除兴趣,但如果另一个客户端持有与同一对等方的有效 fuchsia.bluetooth.le/Connection,则可能不会导致断开连接。

如果与对等设备的连接丢失或发生错误,系统将关闭 fuchsia.bluetooth.le/Connection handle。

服务器可能会在出错时发送以下墓志铭:

  • INVALID_ARGS:部分参数无效。

  • ALREADY_BOUND:此中央设备已与对等设备建立连接。应使用现有连接。

  • NOT_CONNECTED:无法建立连接。

  • CONNECTION_RESET:对等方已断开连接。

  • request id 要发起连接的对等端的标识符。

  • request options 用于配置连接的选项。

  • 请求 handle 句柄,在连接期间保持有效。

新增:24

请求

名称类型
id fuchsia.bluetooth/PeerId
options ConnectionOptions
handle server_end:Connection

ConnectPeripheral

创建与具有给定标识符的外围设备的连接。 返回 status 中操作的状态。

成功后,gatt_client 将被绑定,并可用于 GATT 客户端角色过程。如果失败,gatt_client 将关闭,status 将指示错误。

已弃用 - 请改用 Connect

请求

名称类型
identifier fuchsia.bluetooth/PeerIdString
options ConnectionOptions
gatt_client server_end:fuchsia.bluetooth.gatt/Client

响应

名称类型
status fuchsia.bluetooth/Status

CreateConnectedIsochronousGroup

使用指定参数创建新的连接同步组 (CIG)。此操作仅在连接中以中心角色操作时有效。

如果在明确移除 CIG 之前关闭了中央通道,则该组将被移除并断开连接。

如果失败,则返回错误代码,请参阅 CreateCigError。成功后,返回由主机分配的唯一 ID。

新增:27

请求

名称类型
payload CentralCreateConnectedIsochronousGroupRequest

响应

名称类型
payload Central_CreateConnectedIsochronousGroup_Result

DisconnectPeripheral

断开此 Central 与具有给定标识符的外围设备的连接。

已弃用

请求

名称类型
identifier fuchsia.bluetooth/PeerIdString

响应

名称类型
status fuchsia.bluetooth/Status

GetPeripheral

此方法未由 Fuchsia 核心堆栈实现 - TODO(https://fxbug.dev/42087303)

根据唯一标识符,返回系统从之前的扫描、连接和/或绑定过程中了解到的单个外围设备的相关信息。如果无法识别 identifier,则返回 null。

已弃用

请求

名称类型
identifier fuchsia.bluetooth/PeerIdString

响应

名称类型
peripheral RemoteDevice?

GetPeripherals

返回系统通过之前的扫描、连接和/或绑定过程已知的外围设备列表。可以根据已知存在于外围设备上的服务 UUID 过滤结果。

此方法仅返回外围设备(即可连接的设备)。

已弃用

请求

名称类型
service_uuids vector<fuchsia.bluetooth/UuidString>?

响应

名称类型
peripherals vector<RemoteDevice>

ListenL2cap

为传入频道注册监听器。注册表将分配一个对本地设备而言唯一的 PSM 值,并打开一个 ChannelListener 以接受传入通道。在极少数情况下,如果所有 PSM 都已分配,此调用将失败并返回 ZX_ERR_NO_RESOURCES。

请注意,服务发现或通告的方法由服务或协议定义,因此调用方负责将分配的 PSM 传达给所有客户端。

请求

名称类型
payload ChannelListenerRegistryListenL2capRequest

响应

名称类型
payload ChannelListenerRegistry_ListenL2cap_Result

OnDeviceDiscovered

针对在扫描会话期间发现的每个外围设备/广播器调用。rssi 包含生成此事件的通告数据包的接收信号强度(如果有)。

已弃用

响应

名称类型
device RemoteDevice

OnPeripheralDisconnected

当此中央设备与具有给定标识符的外围设备的连接终止时调用。

已弃用

响应

名称类型
identifier fuchsia.bluetooth/PeerIdString

OnScanStateChanged

在扫描状态发生变化时调用,例如,当扫描会话因调用 Central.StopScan() 或其他意外情况而终止时。

已弃用

响应

名称类型
scanning bool

扫描

扫描附近的 LE 外围设备和广播设备。如果无法启动扫描,result_watcher 将关闭并显示墓志铭。

一个中央客户端一次只能有一个活跃扫描。因此,一次只能有一个扫描请求处于未完成状态。 对 Scan 的其他调用将失败。

扫描会话的生命周期与提供的 result_watcher 协议相关联。如果频道关闭,扫描将停止。

扫描开始后,可以使用 fuchsia.bluetooth.le/ScanResultWatcher 监控扫描结果。

  • request options 用于配置扫描会话的选项。
  • 请求 result_watcher 协议,该协议在此扫描会话期间保持有效。
  • 响应:系统将发送空响应,以确认扫描已停止。

服务器可能会在出错时发送以下墓志铭:

  • 错误 ALREADY_EXISTS:扫描已在进行中。每个 Central 协议仅允许 1 次主动扫描。
  • 错误 INVALID_ARGS:部分扫描 options 无效。请参阅 ScanOptions 文档。
  • 错误 INTERNAL:发生内部错误,无法启动扫描。

请求

名称类型
options ScanOptions
result_watcher server_end:ScanResultWatcher

响应

<EMPTY>

StartScan

启动扫描会话,以查找附近的外围设备和广播设备。系统会通过 CentralDelegate.OnDeviceDiscovered() 报告发现的设备。如果扫描会话已在进行中,filter 将替换现有会话的过滤器。

如果 filter 为 null 或空(即其所有字段均未填充),则系统会针对找到的所有可检测到的设备通知委托。不建议这样做;客户端通常应至少按 filter.service_uuids、filter.service_data 和/或 filter.manufacturer_identifier 之一过滤结果。

已弃用 - 请改用“扫描”

请求

名称类型
filter ScanFilter?

响应

名称类型
status fuchsia.bluetooth/Status

StopScan

终止之前启动的扫描会话。

已弃用

请求

<EMPTY>

SyncToPeriodicAdvertising

同步到周期性广播序列。报告将通过 PeriodicAdvertisingSync 协议传送。

新增:28

请求

名称类型
payload CentralSyncToPeriodicAdvertisingRequest

PrivilegedPeripheral

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

外围设备协议的特权版本。 此协议应仅路由到可信组件和系统组件。使用此协议将使客户端能够突破正常的隐私限制,这可能会泄露有关设备位置或所有者的信息。

文档中会注明泄露信息的使用场景,并将其标记为只能通过 PrivilegedPeripheral 使用,如果通过 Peripheral 使用,则会出错。

新增:24

广告

开始作为 LE 外围设备持续通告。如果无法启动通告,则 advertised_peripheral 将关闭并返回错误。

此方法的调用次数不受限制。如需重新配置通告,请先关闭原始通告,然后在返回空响应后启动新通告。

如果客户端关闭其 fuchsia.bluetooth.le/AdvertisedPeripheral 通道端,通告将停止。如果句柄在请求完成之前关闭,则通告可能会在终止之前短暂启用。AdvertisedPeripheral 的生命周期受 Peripheral 协议的生命周期限制,但未来可能会发生变化 (https://fxbug.dev/42157682)。

  • request parameters 配置通告实例时使用的参数。
  • 请求 advertised_peripheral 协议,该协议在此广告会话期间保持有效。
  • 响应:当广告成功停止时(由于 advertised_peripheral 协议的发布),系统会发送空响应。为防止出现类似的重叠通告以及因通告资源有限而导致的暂时性错误,建议您在再次调用 Advertise 之前等待响应。
  • error 如果发生错误,advertised_peripheral 将关闭,并返回 PeripheralError。

请求

名称类型
parameters AdvertisingParameters
advertised_peripheral client_end:AdvertisedPeripheral

响应

名称类型
payload Peripheral_Advertise_Result

ListenL2cap

为传入频道注册监听器。注册表将分配一个对本地设备而言唯一的 PSM 值,并打开一个 ChannelListener 以接受传入通道。在极少数情况下,如果所有 PSM 都已分配,此调用将失败并返回 ZX_ERR_NO_RESOURCES。

请注意,服务发现或通告的方法由服务或协议定义,因此调用方负责将分配的 PSM 传达给所有客户端。

请求

名称类型
payload ChannelListenerRegistryListenL2capRequest

响应

名称类型
payload ChannelListenerRegistry_ListenL2cap_Result

OnPeerConnected

当通过 fuchsia.bluetooth.le/Peripheral.StartAdvertising 启用可连接通告时,如果远程 LE 中心发起与此外围设备的连接,则会传送事件。

返回的 fuchsia.bluetooth.le/Connection 句柄可用于与对等设备进行交互。它还表示外围设备对连接的所有权:客户端可以丢弃句柄以请求断开连接。同样,系统会关闭句柄,以指示与对等端的连接已断开。

  • 请求 peer 发起连接的中心设备的相关信息。
  • 请求 connection 表示连接。

已弃用 - 请改用 AdvertisedPeripheral.OnConnected

响应

名称类型
peer Peer
connection client_end:Connection

StartAdvertising

开始作为 LE 外围设备进行通告。系统会发送一个空响应,以指示通告已成功启动。如果无法启动通告,则响应将包含 fuchsia.bluetooth.le/PeripheralError。

此方法可以调用任意次数,并且可以连续调用以重新配置通告参数。不过,只有最新的 fuchsia.bluetooth.le/AdvertisingHandle 仍然有效。

fuchsia.bluetooth.le/Peripheral 的实例一次只能有一个有效通告。客户端必须获取多个 Peripheral 实例,才能同时进行多项通告。

如果客户端关闭其 fuchsia.bluetooth.le/AdvertisingHandle 通道端,通告将停止。如果句柄在请求完成之前关闭,则通告会在终止之前短暂启用。

  • request parameters:配置通告实例时使用的参数。
  • 请求 handle 句柄,该句柄在此通告会话期间保持有效。

已弃用

请求

名称类型
parameters AdvertisingParameters
handle server_end:AdvertisingHandle

响应

名称类型
payload Peripheral_StartAdvertising_Result

ScanResultWatcher

在 fuchsia.bluetooth.le/central.fidl 中定义

表示主动扫描过程。此协议在扫描期间保持有效,可用于获取扫描结果。客户端可以关闭协议以停止扫描。如果系统停止了扫描,则协议将以墓志铭 CANCELED 关闭,以将此情况传达给客户端。

观看

返回满足 ScanOptions 中指示的过滤条件的所有 LE 对等设备的列表。第一个响应会立即返回匹配的已发现对等设备。只有在自上次调用以来扫描或更新了对等方时,后续调用才会收到响应。如果在一次调用已处于待处理状态时错误地发送了对 Watch 的第二次调用,则扫描将被取消,协议将被关闭。

  • 响应 updated 自上次调用 Watch() 以来添加或更新的对等方。

请求

<EMPTY>

响应

名称类型
updated vector<Peer>

STRUCTS

AdvertisingDataDeprecated

在 fuchsia.bluetooth.le/types_deprecated.fidl 中定义

表示由广播器或外围设备通告的通告和扫描响应数据。

已弃用 - 请改用 AdvertisingData

字段类型说明默认
name fuchsia.bluetooth/DeviceName

设备的名称。

无默认应用
tx_power_level fuchsia.bluetooth/Int8?

广告中报告的无线电传输功率级别。

无默认应用
appearance fuchsia.bluetooth/UInt16?

广告中报告的外观。

无默认应用
service_uuids vector<fuchsia.bluetooth/UuidString>?

通告中报告的服务 UUID 的列表。

无默认应用
service_data vector<ServiceDataEntry>?

通告中包含的服务数据。

无默认应用
manufacturer_specific_data vector<ManufacturerSpecificDataEntry>?

制造商特定数据条目。

无默认应用
solicited_service_uuids vector<fuchsia.bluetooth/UuidString>?

通告中请求的服务 UUID。外围设备可以邀请公开特定服务的中心设备使用服务请求连接到它们。

无默认应用
uris vector<string>?

通告数据包中包含的 URI。 这些是完整的 URI(会自动进行编码/解码)

无默认应用

ChannelListener_Accept_Response

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

<EMPTY>

ChannelListener_Connected_Response

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

<EMPTY>

ConnectedIsochronousGroup_EstablishStreams_Response

在 fuchsia.bluetooth.le/iso.fidl 中定义

<EMPTY>

Connection_AcceptPeriodicAdvertisingSyncTransfer_Response

在 fuchsia.bluetooth.le/peer.fidl 中定义

<EMPTY>

Connection_TransferPeriodicAdvertisingSync_Response

在 fuchsia.bluetooth.le/peer.fidl 中定义

<EMPTY>

IsochronousStream_SetupDataPath_Response

在 fuchsia.bluetooth.le/iso.fidl 中定义

<EMPTY>

IsochronousStream_Write_Response

在 fuchsia.bluetooth.le/iso.fidl 中定义

<EMPTY>

ManufacturerData

在 fuchsia.bluetooth.le/advertising_data.fidl 中定义

fuchsia.bluetooth.le/AdvertisingData 的 manufacturer_data 字段中的条目。

字段类型说明默认
company_id uint16 无默认应用
data vector<uint8>:252 无默认应用

ManufacturerSpecificDataEntry

在 fuchsia.bluetooth.le/types_deprecated.fidl 中定义

已弃用 - 请改用 ManufacturerData

字段类型说明默认
company_id uint16 无默认应用
data vector<uint8> 无默认应用

PeriodicAdvertisingSyncId

在 fuchsia.bluetooth.le/periodic.fidl 中定义

系统用于标识 PeriodicAdvertisingSync 的 64 位唯一值。

新增:28

字段类型说明默认
value uint64 无默认应用

PeriodicAdvertisingSync_SyncToSubevents_Response

在 fuchsia.bluetooth.le/periodic.fidl 中定义

<EMPTY>

Peripheral_Advertise_Response

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

<EMPTY>

Peripheral_StartAdvertising_Response

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

<EMPTY>

RemoteDevice

在 fuchsia.bluetooth.le/types_deprecated.fidl 中定义

表示远程低功耗蓝牙设备。RemoteDevice 可以表示中心设备、广播设备或外围设备,具体取决于接收它的 API。

已弃用 - 请改用 Peer

字段类型说明默认
identifier fuchsia.bluetooth/PeerIdString

在当前系统上唯一标识此设备的标识符。

无默认应用
connectable bool

此设备是否可连接。不可连接的设备通常扮演 LE 广播者角色。

无默认应用
rssi fuchsia.bluetooth/Int8?

此设备最近一次的已知 RSSI(如果已知)。

无默认应用
advertising_data AdvertisingDataDeprecated?

如果此设备是广播器或外围设备,则由其广播的广告数据。

无默认应用

ScanFilter

在 fuchsia.bluetooth.le/types_deprecated.fidl 中定义

扫描期间使用的过滤参数。只有在发现的外围设备或广播设备满足所有提供的过滤参数时,系统才会向应用报告该设备。系统会忽略 null 字段。

已弃用 - 请改用 Filter

字段类型说明默认
service_uuids vector<fuchsia.bluetooth/UuidString>?

根据通告的服务 UUID 进行过滤。通告 service_uuids 中至少一个条目的外围设备将满足此过滤条件。

无默认应用
service_data_uuids vector<fuchsia.bluetooth/UuidString>?

根据包含给定 UUID 之一的服务数据进行过滤。

无默认应用
manufacturer_identifier fuchsia.bluetooth/UInt16?

根据制造商数据中存在的公司标识符进行过滤。如果设置了此过滤条件参数,则通告载荷必须包含具有所提供公司标识符的制造商特定数据,才能满足此过滤条件。

无默认应用
connectable fuchsia.bluetooth/Bool?

根据设备是否可连接进行过滤。例如,如果客户端仅对可连接的外围设备感兴趣,则可以将此值设置为 true。同样,客户端可以通过将此值设置为 false 来仅扫描广播器。

无默认应用
name_substring fuchsia.bluetooth/DeviceName

根据广播设备名称的一部分过滤结果。

无默认应用
max_path_loss fuchsia.bluetooth/Int8?

根据无线电波的路径损耗过滤结果。与此过滤条件匹配的设备必须满足以下条件:

  1. 必须提供无线电传输功率级别和接收信号强度,才能计算路径损耗;
  2. 计算出的路径损耗值必须小于或等于 max_path_loss。
无默认应用

ServiceData

在 fuchsia.bluetooth.le/advertising_data.fidl 中定义

fuchsia.bluetooth.le/AdvertisingData 的 service_data 字段中的条目。

字段类型说明默认
uuid fuchsia.bluetooth/Uuid 无默认应用
data vector<uint8>:252 无默认应用

ServiceDataEntry

在 fuchsia.bluetooth.le/types_deprecated.fidl 中定义

已弃用 - 请改用 ServiceData

字段类型说明默认
uuid fuchsia.bluetooth/UuidString 无默认应用
data vector<uint8> 无默认应用

枚举

AdvertisingModeHint strict

类型:uint8

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

客户端可以通过指定模式来指明通告数据包的传输速率。在为控制器配置通告间隔和窗口参数时,该模式会向系统提供提示。

该模式会影响扫描器或中心设备发现外围设备的速度,但可能会对功耗产生不利影响。虽然系统会尝试遵循客户端的请求,但无法保证一定会这样做。

名称值说明
1

以非常短的间隔和窗口进行通告,以便快速发现,但代价是功耗较高。这对应于 1M PHY 上的 30-60 毫秒间隔和编码 PHY 上的 90-180 毫秒间隔。

2

以较短的间隔和窗口进行通告,耗电量低于 VERY_FAST。 这对应于 1M PHY 上的 100-150 毫秒间隔和编码 PHY 上的 300-450 毫秒间隔。

3

以适中的间隔和窗口进行通告。这对应于 1M PHY 上的 1-1.2 秒和编码 PHY 上的 3 秒。

CentralError strict

类型:uint32

在 fuchsia.bluetooth.le/central.fidl 中定义

名称值说明
1

请求已中止。

2

请求已在处理中。

3

提供的参数无效。

4

由于硬件或系统错误,无法启动通告。

CigFramingOptions strict

类型:uint32

在 fuchsia.bluetooth.le/iso.fidl 中定义

新增:27

名称值说明
0
1

灵活 CigPacking

类型:uint32

在 fuchsia.bluetooth.le/iso.fidl 中定义

新增:27

名称值说明
0
1

CreateCigError flexible

类型:uint32

在 fuchsia.bluetooth.le/iso.fidl 中定义

新增:27

名称值说明
1

由于发生了与下面定义的其他错误无关的未知或未指明的错误,因此无法创建 CIG。

2

无法创建 CIG,因为这会超出可用资源。

3

无法创建 CIG,因为为 CIG 或一个或多个 CIS 提供给 CreateCig 的参数无效。

新增:NEXT

EstablishStreamsError 灵活

类型:uint32

在 fuchsia.bluetooth.le/iso.fidl 中定义

新增:27

名称值说明
1

控制器不支持具有为其指定的参数的 CIS。

2

在一次调用中多次指定了同一 CIS。

3

指定的一个或多个 CIS 已存在。

4

CIS 参数中指定的一个或多个对等设备未连接。

5

在创建 CIG 时提供了预期对等方,并且请求的一个或多个对等方不满足该集合决定的 CIG 参数。

新增:31

IsoPacketStatusFlag strict

类型:uint8

在 fuchsia.bluetooth.le/iso.fidl 中定义

指示从等时通道接收的数据有效性的标志。

新增:24

名称值说明
0

有效数据。已正确接收完整的 SDU。

1

数据可能无效。收到的一个或多个分片可能包含错误,或者数据包的一部分可能缺失。

2

数据包的部分内容未正确接收。

PeriodicAdvertisingSyncError 灵活

类型:uint32

在 fuchsia.bluetooth.le/periodic.fidl 中定义

新增:28

名称值说明
0
1
2
3

PeriodicAdvertisingSyncTransferError 灵活

类型:uint32

在 fuchsia.bluetooth.le/peer.fidl 中定义

新增:28

名称值说明
0
1

PeriodicAdvertisingSyncId 与有效的PeriodicAdvertisingSync不对应。

2
3
4

PeripheralError strict

类型:uint32

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

名称值说明
1

当前硬件不支持所请求的操作或参数。

2

提供的通告数据在编码后超出了允许的最大长度。

3

提供的扫描响应数据在编码后超出了允许的最大长度。

4

请求的参数无效。

5

开始通告的请求已中止,例如通过发出带有新参数的新请求。

6

由于硬件或系统错误,无法启动通告。

灵活的 PhysicalLayer

类型:uint8

在 fuchsia.bluetooth.le/phy.fidl 中定义

LE 无线电传输的物理层配置。

新增:28

名称值说明
1

1 兆位 PHY 是原始和默认 PHY,具有均衡的吞吐量和范围。

2

2 兆位 PHY 支持提高吞吐量,但会缩短覆盖范围。

3

Coded PHY 通过使用增强型错误检测和纠正功能来增加最大范围,但代价是吞吐量降低。

TABLES

AcceptedChannelParameters

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

在监听新通道连接时用于接受通道的一组参数。

请参阅 ChannelListenerRegistry/ListenL2cap。

新增:24

序数字段类型说明
accepted_channel_modes vector<fuchsia.bluetooth/ChannelMode>

收听时应接受的所有频道模式。必须至少包含一个声道模式,否则调用将失败并显示 ZX_ERR_INVALID_ARGS。 必填。

max_packet_size uint16

接收时支持的数据包大小上限。 可选。如果未提供,则大小将由蓝牙系统决定。我们不保证所选尺寸一定有货。

AdvertisingData

在 fuchsia.bluetooth.le/advertising_data.fidl 中定义

表示由 LE 外围设备或广播器传输的广告和扫描响应数据。

序数字段类型说明
name fuchsia.bluetooth/DeviceName

设备的全称或简称。

appearance fuchsia.bluetooth/Appearance

设备的外观。

tx_power_level int8

已弃用 - 请改用 include_tx_power_level。此值将被忽略。

service_uuids vector<fuchsia.bluetooth/Uuid>

服务 UUID。

service_data vector<ServiceData>

服务数据条目。

manufacturer_data vector<ManufacturerData>

制造商特定数据条目。

uris vector<string:278>

表示要通告的 URI 的字符串,如 IETF STD 66 中所定义。每个条目都应是 UTF-8 字符串,包括架构。如需了解详情,请参阅:

  • 如需了解允许的架构,请参阅 https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml;
  • https://www.bluetooth.com/specifications/assigned-numbers/uri-scheme-name-string-mapping,了解系统用于压缩架构以节省载荷空间的码位。
include_tx_power_level bool

指示当前 TX 功率级别是否应包含在通告数据中。

resolvable_set_identifier array<uint8, 6>

将对等方标识为属于协调集。 此参数的解析和生成在“Coordinated Set Identification Service Specification”中定义。

新增:24
broadcast_name string:128

扫描设备上的界面可以使用广播名称字符串来显示有关可用广播源的信息。

具有相同广播名称的多台设备可能会传输相同的数据,从而允许设备选择其中一台。长度至少为 4 个 Unicode 字符,且不超过 32 个字符。

在公共广播配置文件规范中定义。

新增:24

AdvertisingParameters

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

表示用于配置通告的参数。

序数字段类型说明
data AdvertisingData

将在广播数据包的数据部分中编码的字段。

必须填写此字段。

scan_response AdvertisingData

要在扫描响应数据包中发送的字段。在不支持通告数据长度扩展的平台上,客户端可以使用此功能发送通告数据包中无法容纳的其他数据。

如果存在,通告将被配置为可扫描。

mode_hint AdvertisingModeHint

所需的广告频率。请参阅 fuchsia.bluetooth.le/AdvertisingModeHint。 如果不存在,则默认为 fuchsia.bluetooth.le/AdvertisingModeHint.SLOW。

connectable bool

如果存在且为 true,则控制器将广播可连接的通告,从而允许远程 LE 中心发起与外围设备的连接。如果为 false 或不存在,则通告将不可连接。

已弃用 - 建议在新代码中使用 connection_options 字段。

connection_options ConnectionOptions

如果存在,控制器将广播可连接的通告,以便对等设备发起与外围设备的连接。ConnectionOptions 的字段将配置通过通告设置的所有连接。

advertising_procedure AdvertisingProcedure

指定要使用的通告类型(例如,旧版、扩展等)。

如果不存在,我们会默认使用旧版通告,以保持与蓝牙 5.0 之前的设备的最佳兼容性。如需了解详情,请参阅 AdvertisingProcedure 中的字段说明。

新增:24
address_type fuchsia.bluetooth/AddressType

如果未启用隐私保护,地址类型将始终为公开。

如果启用了隐私保护,并且客户端没有特权,则地址将是随机的私有地址(可解析或不可解析)。请求公共地址的非特权客户端将返回错误。

如果启用了隐私保护功能,并且客户端具有特权,则客户端可以请求任何地址类型,否则将默认使用随机专用地址。

如果未设置此字段,地址类型将为公共或随机,具体取决于系统中是否启用了隐私保护。

新增:24

BroadcastIsochronousGroupInfo

在 fuchsia.bluetooth.le/iso.fidl 中定义

描述 LE 音频广播等时组 (BIG) 的“BIGInfo”参数。 缺少要作为 fxbug.dev/429213165 的一部分添加的字段。

新增:28

序数字段类型说明
streams_count uint8

此组中的广播等时流数量。

max_sdu_size uint16

同步 SDU 的大小上限。

phy PhysicalLayer

用于传输数据的 PHY。

encryption bool

指示 BIG 是否已加密。

BroadcastIsochronousGroupInfoReport

在 fuchsia.bluetooth.le/periodic.fidl 中定义

随周期性广播一起收到的 BIGInfo 报告。

新增:28

序数字段类型说明
info BroadcastIsochronousGroupInfo
timestamp zx/Time

主机收到报告时的时间戳。

CentralCreateConnectedIsochronousGroupRequest 资源

在 fuchsia.bluetooth.le/central.fidl 中定义

序数字段类型说明
cig_parameters CigParameters

必需。CIG 的参数。

cis_requested_parameters vector<CisRequestedParameters>:31

必需。必须至少包含一个 CIS。

cig server_end:ConnectedIsochronousGroup

必需。要连接的 ConnectedIsochronousGroup 协议。

CentralSyncToPeriodicAdvertisingRequest 资源

在 fuchsia.bluetooth.le/central.fidl 中定义

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

传输定期通告的对等设备的标识符,通过 Peer.periodic_advertising_interval 指示。 必填。

advertising_sid uint8

用于同步的通告的通告 SID。此信息可在标准扫描结果 (Peer.advertising_sid) 中找到。必填。

sync server_end:PeriodicAdvertisingSync

成功同步后,系统会发送 PeriodicAdvertisingSync.OnEstablished 事件。如需了解失败墓志铭,请参阅 PeriodicAdvertisingSync。 必填。

config PeriodicAdvertisingSyncConfiguration

Central_CreateConnectedIsochronousGroup_Response

在 fuchsia.bluetooth.le/central.fidl 中定义

序数字段类型说明
cig_id uint8

由主机分配的唯一 CIG_ID。

ChannelListenerConnectedRequest 资源

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

序数字段类型说明
channel client_end:fuchsia.bluetooth/Channel

必填。

ext_offload client_end:ChannelOffloadExt

通道分流扩展。请参阅 ChannelOffloadExt。 仅适用于特权客户端,使其能够启动频道分流。

ChannelListenerRegistryListenL2capRequest 资源

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

序数字段类型说明
parameters AcceptedChannelParameters

通道本地端接受的参数。

listener client_end:ChannelListener

要打开的通道监听器协议。

ChannelListenerRegistry_ListenL2cap_Response

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

序数字段类型说明
psm Psm

由注册管理机构分配的 PSM。保证在 PSM 值的 DYNAMIC 范围内。

ChannelOffloadExtStartOffloadRequest

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

序数字段类型说明

ChannelOffloadExt_StartOffload_Response

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

序数字段类型说明
offload_parameters fuchsia.bluetooth/L2capChannelOffloadParameters

CigParameters

在 fuchsia.bluetooth.le/iso.fidl 中定义

新增:27

序数字段类型说明
sdu_interval_c_to_p uint32

连续 SDU 开始之间的时间间隔(中心 => 外围,以微秒为单位)。这是所用编解码器的功能。 必填。

sdu_interval_p_to_c uint32

连续 SDU 的开始时间之间的间隔(外围设备 => 中心设备,以微秒为单位)。这是所用编解码器的功能。 必填。

packing CigPacking

排列多个 CIS 的子事件的首选方法。控制器可能会忽略此参数。 可选。如果未指定,系统将使用 SEQUENTIAL。

framing CigFramingOptions

指定在数据帧中包含时间偏移值。 可选。如果未指定,系统将使用 UNFRAMED。

max_transport_latency_c_to_p uint16

控制器之间的最大延迟时间(以毫秒为单位,中央 => 外围)。 必填。

max_transport_latency_p_to_c uint16

控制器之间的最大延迟时间(外围设备 => 中心设备),以毫秒为单位。 必填。

expected_peers vector<fuchsia.bluetooth/PeerId>

预期或计划加入此 CIG 的对等方(如果已知)。这可用于优化参数,但可能会限制可连接到群组的对等设备集。 可选。

新增:31

CisEstablishedParameters

在 fuchsia.bluetooth.le/iso.fidl 中定义

为单个 CIS 建立的配置。

新增:24

序数字段类型说明
cig_sync_delay zx/Duration

CIG 事件中所有 CIS 的 PDU 传输时间上限。 范围为 [234, 8388607] 微秒。

此字段始终存在。

cis_sync_delay zx/Duration

在 CIG 事件中传输指定 CIS 的 PDU 的最长时间。范围为 [234, 8388607] 微秒。

此字段始终存在。

max_subevents uint8

每个 CIS 事件中的子事件数量上限。

此字段始终存在。

iso_interval zx/Duration

两个连续 CIS 锚点之间的时间,范围为 [5ms, 4s]

此字段始终存在。

central_to_peripheral_params CisUnidirectionalParams

中心设备 => 外围设备传输的参数(如果适用)。

如果数据流包含从中央设备到外围设备的同步数据传输,则此字段会显示。

peripheral_to_central_params CisUnidirectionalParams

外围设备 => 中心设备传输的参数(如果适用)。

如果数据流包含从外围设备到中心设备的同步数据传输,则此字段会显示。

CisParameters

在 fuchsia.bluetooth.le/iso.fidl 中定义

新增:27

序数字段类型说明
cis_id uint8

要建立的流的 ID(之前已传递给 Connection/CreateCig())。必填。

id fuchsia.bluetooth/PeerId

提供等时数据流另一端的外围设备。 必填。

CisRequestedParameters 资源

在 fuchsia.bluetooth.le/iso.fidl 中定义

新增:27

序数字段类型说明
cis_id uint8

用于在 CIG 中唯一标识数据流的 ID。在单个创建请求中,所有 cis_id 必须各不相同。必填。

connection_stream server_end:IsochronousStream

将用于对数据流执行操作的通道。 必填。

max_sdu_size_outgoing uint16

SDU 大小上限(中心设备 => 外围设备)。这是所用编解码器的功能。单向流应将未使用的方向设置为 0。 可选。如果未提供,则将使用值 0(单向)

max_sdu_size_incoming uint16

SDU 大小上限(外围设备 => 中心设备)。这是所用编解码器的功能。单向流应将未使用的方向设置为 0。 可选。如果未提供,则将使用值 0(单向)

CisUnidirectionalParams

在 fuchsia.bluetooth.le/iso.fidl 中定义

与已建立的 CIS 中单个传输方向相关的参数。

新增:24

序数字段类型说明
transport_latency zx/Duration

传输延迟时间,范围为 [234, 8388607] 微秒

此字段始终存在。

burst_number uint8

此方向传输的突发数量。

此字段始终存在。

flush_timeout uint8

每个载荷的刷新超时,以 ISO 间隔的倍数表示。

此字段始终存在。

CodecDelayGetCodecLocalDelayRangeRequest

在 fuchsia.bluetooth.le/codec_delay.fidl 中定义

序数字段类型说明
logical_transport_type fuchsia.bluetooth/LogicalTransportType

正在使用的逻辑传输类型。目前仅支持 LE 传输机制(CIS 或 BIS)。必填。

data_direction fuchsia.bluetooth/DataDirection

指示数据流的方向。必填。

codec_attributes fuchsia.bluetooth/CodecAttributes

通过无线方式使用的编解码器。必填。

CodecDelay_GetCodecLocalDelayRange_Response

在 fuchsia.bluetooth.le/codec_delay.fidl 中定义

序数字段类型说明
min_controller_delay zx/Duration

指定配置的控制器延迟时间下限,范围为 [0, 4] 秒。 始终在成功时提供。

max_controller_delay zx/Duration

指定配置的最大控制器延迟时间,范围为 [0, 4] 秒。 始终在成功时提供。

ConnectedIsochronousGroupEstablishStreamsRequest

在 fuchsia.bluetooth.le/iso.fidl 中定义

序数字段类型说明
cis_params vector<CisParameters>:31

必填。

ConnectionAcceptCisRequest 资源

在 fuchsia.bluetooth.le/peer.fidl 中定义

序数字段类型说明
cig_id uint8

包含所请求 CIS 的 CIG 的标识符。必填。

cis_id uint8

所请求 CIS 的标识符。必填。

connection_stream server_end:IsochronousStream

串流建立后,服务器将在此通道上调用 IsochronousStream::OnCisEstablished()。必填。

如果此通道的客户端端关闭,则相应 CIG/CIS 组合的请求将被拒绝,直到/除非使用相同的 CIG/CIS 参数再次调用 AcceptCis()。

ConnectionAcceptPeriodicAdvertisingSyncTransferRequest 资源

在 fuchsia.bluetooth.le/peer.fidl 中定义

序数字段类型说明
sync server_end:PeriodicAdvertisingSync

建立同步后,系统会发送 PeriodicAdvertisingSync.OnEstablished 事件,其中包含通过转移接收的服务数据。关闭客户端将取消转移。

config PeriodicAdvertisingSyncConfiguration

ConnectionConnectL2capRequest 资源

在 fuchsia.bluetooth.le/peer.fidl 中定义

序数字段类型说明
parameters fuchsia.bluetooth/ChannelParameters

通道本地端的参数。

channel server_end:fuchsia.bluetooth/Channel

要打开的通道协议。

psm Psm

要连接的远程端的 PSM。

ext_offload server_end:ChannelOffloadExt

通道分流扩展。请参阅 fuchsia.bluetooth.le/ChannelOffloadExt。 只有特权客户端才能分流通道。此协议将对其他客户关闭。客户端还必须调用 ChannelOffloadExt.StartOffload 才能开始分流。

新增:31

ConnectionOptions

在 fuchsia.bluetooth.le/connection_options.fidl 中定义

表示由创建低功耗连接的 FIDL 协议按连接设置的参数。

序数字段类型说明
bondable_mode bool

如果为 true,则连接在可绑定模式下运行。这意味着,如果对等设备也处于可绑定模式,则配对将形成绑定,或在断开连接后保持绑定。如果不存在,则连接默认为可绑定模式。如果为 false,则连接在不可绑定模式下运行,这意味着本地设备仅允许不形成绑定的配对。

service_filter fuchsia.bluetooth/Uuid

如果存在此字段,则连接后执行的服务发现仅限于与此字段匹配的主要服务。否则,默认情况下会发现所有可用服务。

ConnectionTransferPeriodicAdvertisingSyncRequest

在 fuchsia.bluetooth.le/peer.fidl 中定义

序数字段类型说明
sync_id PeriodicAdvertisingSyncId

必填。

service_data uint16

要随同步一起发送的应用特定数据。 可选。 默认值:0

扩展

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

序数字段类型说明

过滤

在 fuchsia.bluetooth.le/central.fidl 中定义

扫描期间使用的过滤参数。发现的对等设备只有在满足所有当前过滤条件参数时,才与过滤条件匹配。

序数字段类型说明
service_uuid fuchsia.bluetooth/Uuid

根据通告的服务 UUID 进行过滤。

service_data_uuid fuchsia.bluetooth/Uuid

根据包含给定 UUID 的服务数据进行过滤。

manufacturer_id uint16

根据制造商数据中存在的制造商标识符进行过滤。如果设置了此过滤条件参数,则通告载荷必须包含具有所提供公司标识符的制造商特定数据,才能满足此过滤条件。您可以在以下网址找到制造商标识符:https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/

connectable bool

根据设备是否可连接进行过滤。例如,如果客户端仅对外围设备感兴趣,则可以将其设置为 true。同样,客户端可以通过将此值设置为 false 来仅扫描广播器。

name fuchsia.bluetooth/DeviceName

根据广播设备名称的一部分过滤结果。 允许子字符串匹配。

max_path_loss int8

根据无线电波的路径损耗过滤结果。与此过滤条件匹配的设备必须满足以下条件:

  1. 必须提供无线电传输功率级别和接收信号强度,以便计算路径损耗;
  2. 计算出的路径损耗值必须小于或等于 max_path_loss。

注意:此字段是使用在扫描过程中从通告和扫描响应数据中获取的 RSSI 和 TX 功率信息计算得出的。 请勿将其与使用“路径损耗报告”功能获取的有效连接信息混淆。

solicitation_uuid fuchsia.bluetooth/Uuid

根据服务 UUID 按服务请求进行过滤。 服务请求是指,如果对等方提供我们想要使用的服务,则邀请对等方进行连接。

添加:26

IsochronousStreamOnEstablishedRequest

在 fuchsia.bluetooth.le/iso.fidl 中定义

序数字段类型说明
result zx/Result

ZX_ERR_INTERNAL 结果表示控制器收到了请求,但无法建立数据流。

established_params CisEstablishedParameters

如果成功建立了数据流,此字段将始终显示。

IsochronousStreamSetupDataPathRequest

在 fuchsia.bluetooth.le/iso.fidl 中定义

序数字段类型说明
data_direction fuchsia.bluetooth/DataDirection

数据流向。 必填。

codec_attributes fuchsia.bluetooth/CodecAttributes

指定无线传输中使用的编码格式。 必填。

controller_delay zx/Duration

提供的延迟时间必须在控制器支持的范围内,且不得超过 4 秒。 必填。

IsochronousStreamWriteRequest

在 fuchsia.bluetooth.le/iso.fidl 中定义

序数字段类型说明
data vector<uint8>:4095

数据帧本身。

IsochronousStream_Read_Response

在 fuchsia.bluetooth.le/iso.fidl 中定义

序数字段类型说明
data vector<uint8>

数据帧本身。 必填。

sequence_number uint16

与帧关联的序列号。 必填。

status_flag IsoPacketStatusFlag

数据包的状态标志(由控制器报告)。 必填。

timestamp zx/Duration

接收时间戳,由控制器报告。 可选。

旧版

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

序数字段类型说明

对等节点

在 fuchsia.bluetooth.le/peer.fidl 中定义

表示可能充当广播器、外围设备或中心角色的低功耗蓝牙对等设备。对等设备的角色取决于它是从中央协议还是外围协议获取的。

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

在当前系统上唯一标识此对等方。

此字段始终存在。

connectable bool

此对等节点是否可连接。不可连接的对等设备通常处于 LE 广播器角色。

此字段始终存在。

rssi int8

此对等设备的最后观测信号强度。此字段仅针对正在广播的对等方显示。如果对等设备未进行通告,RSSI 可能会过时。

注意:此字段不应与当前连接到系统的对等设备的“连接 RSSI”混淆。

advertising_data AdvertisingData

已弃用 - 请改用“data”

name fuchsia.bluetooth/DeviceName

此对等方的名称。名称通常在扫描过程中获取,并可在连接后的名称发现过程中进行更新。

如果名称已知,则此字段存在。

data ScanData

此对等设备广播的通告和扫描响应数据中的信息。如果存在,则包含上次从对等设备收到的通告数据。

bonded bool

此对等设备是否已绑定。

此字段始终存在。

last_updated zx/Time

系统单调时钟的值,在上次更新此对等方时(例如,由于收到通告)测量。

此字段始终存在。

advertising_sid uint8

广告 SID 的值。

范围:0x00 至 0x0F

新增:25
periodic_advertising_interval uint16

定期广播的间隔。 此字段的存在表示周期性通告序列与此通告相关联。

范围:0x0006 到 0xFFFF 时间:N × 1.25 毫秒

新增:25

PeriodicAdvertisingReport

在 fuchsia.bluetooth.le/periodic.fidl 中定义

新增:28

序数字段类型说明
rssi int8

广告报告的信号强度。

data ScanData

随此报告发送的广告数据载荷。

event_counter uint16

收到通告数据包的事件的事件计数器。此信息可用于回复举报。

subevent uint8

报告的子事件编号。仅当在子事件中收到数据包时才存在。

timestamp zx/Time

主机收到报告时的时间戳。

PeriodicAdvertisingSyncConfiguration

在 fuchsia.bluetooth.le/periodic.fidl 中定义

新增:28

序数字段类型说明
filter_duplicates bool

滤除重复的广告报告。 可选。 默认值:true

PeriodicAdvertisingSyncOnEstablishedRequest

在 fuchsia.bluetooth.le/periodic.fidl 中定义

序数字段类型说明
id PeriodicAdvertisingSyncId

在 Connection.TransferPeriodicAdvertisingSync 中使用。

subevents_count uint8

此周期性通告包含的子事件数量。

peer_id fuchsia.bluetooth/PeerId
service_data uint16

仅针对同步转移作业显示。随转移作业收到的应用专用数据。

advertising_sid uint8
phy PhysicalLayer
periodic_advertising_interval uint16

以间隔单位保留,因为配置文件使用此字段时不会更改。 范围:0x0006 到 0xFFFF 时间:N × 1.25 毫秒

PeriodicAdvertisingSyncSyncToSubeventsRequest

在 fuchsia.bluetooth.le/periodic.fidl 中定义

序数字段类型说明
subevents vector<uint8>:128

要同步到的子事件编号列表。

PeriodicAdvertisingSync_WatchAdvertisingReport_Response

在 fuchsia.bluetooth.le/periodic.fidl 中定义

序数字段类型说明
reports vector<SyncReport>

ScanData

在 fuchsia.bluetooth.le/peer.fidl 中定义

从对等设备广播的通告和扫描响应数据中获取的信息。

序数字段类型说明
tx_power int8

广播和/或可扫描对等设备报告的无线电发射功率级别。

注意:请勿将此字段与当前连接到系统的对等设备的“连接 TX 功率级别”混淆,后者是通过“传输功率报告”功能获取的。

appearance fuchsia.bluetooth/Appearance

设备的外观。

service_uuids vector<fuchsia.bluetooth/Uuid>

服务 UUID。

service_data vector<ServiceData>

服务数据条目。

manufacturer_data vector<ManufacturerData>

制造商特定数据条目。

uris vector<string:278>

表示要通告的 URI 的字符串,如 IETF STD 66 中所定义。每个条目都应是 UTF-8 字符串,包括架构。如需了解详情,请参阅 https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml,了解允许的 scheme; 注意:蓝牙广播会通过无线方式压缩 scheme,以节省空间。请参阅 https://www.bluetooth.com/specifications/assigned-numbers/uri-scheme-name-string-mapping。

timestamp zx/Time

收到此扫描数据时的单调时间。

resolvable_set_identifier array<uint8, 6>

将对等方标识为属于协调集。 此参数的解析和生成在“Coordinated Set Identification Service Specification”中定义。

新增:31
broadcast_name string:128

扫描设备上的界面可以使用广播名称字符串来显示有关可用广播源的信息。

具有相同广播名称的多台设备可能会传输相同的数据,从而允许设备选择其中一台。长度至少为 4 个 Unicode 字符,且不超过 32 个字符。

在公共广播配置文件规范中定义。

新增:31

ScanOptions

在 fuchsia.bluetooth.le/central.fidl 中定义

扫描期间使用的参数。

序数字段类型说明
filters vector<Filter>

扫描期间使用的过滤条件列表。系统会报告满足其中任何过滤条件的外围设备。必须至少指定 1 个过滤条件。 虽然不建议这样做,但需要报告所有外围设备的客户端可以指定空过滤条件。

UNIONS

AdvertisingProcedure flexible

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

新增:24
序数变体类型说明
legacy Legacy

使用旧版通告数据包进行通告。所有设备都应该能够发现此类数据包。

extended Extended

使用扩展广告数据包进行通告。与旧版通告数据包相比,扩展通告数据包允许通告的数据量要大得多(每个 PDU 251 字节,而旧版为 31 字节)。扩展广播数据包在广播链中最多支持 1,650 字节,但只有使用蓝牙 5.0+ 的较新设备才能检测到它们。

并非所有产品都支持扩展广播数据包。如果请求了该功能但不受支持,则会返回 PeripheralError::NOT_SUPPORTED。

Central_CreateConnectedIsochronousGroup_Result strict

在 fuchsia.bluetooth.le/central.fidl 中定义

序数变体类型说明
response Central_CreateConnectedIsochronousGroup_Response
err CreateCigError

ChannelListenerRegistry_ListenL2cap_Result strict

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

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

ChannelListener_Accept_Result strict

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

序数变体类型说明
response ChannelListener_Accept_Response
framework_err internal

ChannelListener_Connected_Result strict

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

序数变体类型说明
response ChannelListener_Connected_Response
framework_err internal

ChannelOffloadExt_StartOffload_Result strict

在 fuchsia.bluetooth.le/l2cap.fidl 中定义

序数变体类型说明
response ChannelOffloadExt_StartOffload_Response
err zx/Status
framework_err internal

CodecDelay_GetCodecLocalDelayRange_Result strict

在 fuchsia.bluetooth.le/codec_delay.fidl 中定义

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

ConnectedIsochronousGroup_EstablishStreams_Result strict

在 fuchsia.bluetooth.le/iso.fidl 中定义

序数变体类型说明
response ConnectedIsochronousGroup_EstablishStreams_Response
err EstablishStreamsError
framework_err internal

Connection_AcceptPeriodicAdvertisingSyncTransfer_Result strict

在 fuchsia.bluetooth.le/peer.fidl 中定义

序数变体类型说明
response Connection_AcceptPeriodicAdvertisingSyncTransfer_Response
err PeriodicAdvertisingSyncTransferError

Connection_TransferPeriodicAdvertisingSync_Result strict

在 fuchsia.bluetooth.le/peer.fidl 中定义

序数变体类型说明
response Connection_TransferPeriodicAdvertisingSync_Response
err PeriodicAdvertisingSyncTransferError

IsochronousStream_Read_Result strict

在 fuchsia.bluetooth.le/iso.fidl 中定义

序数变体类型说明
response IsochronousStream_Read_Response
framework_err internal

IsochronousStream_SetupDataPath_Result strict

在 fuchsia.bluetooth.le/iso.fidl 中定义

序数变体类型说明
response IsochronousStream_SetupDataPath_Response
err zx/Status
framework_err internal

IsochronousStream_Write_Result strict

在 fuchsia.bluetooth.le/iso.fidl 中定义

序数变体类型说明
response IsochronousStream_Write_Response
err zx/Status
framework_err internal

PeriodicAdvertisingSync_SyncToSubevents_Result strict

在 fuchsia.bluetooth.le/periodic.fidl 中定义

序数变体类型说明
response PeriodicAdvertisingSync_SyncToSubevents_Response
err zx/Status
framework_err internal

PeriodicAdvertisingSync_WatchAdvertisingReport_Result strict

在 fuchsia.bluetooth.le/periodic.fidl 中定义

序数变体类型说明
response PeriodicAdvertisingSync_WatchAdvertisingReport_Response
framework_err internal

Peripheral_Advertise_Result strict

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

序数变体类型说明
response Peripheral_Advertise_Response
err PeripheralError

Peripheral_StartAdvertising_Result strict

在 fuchsia.bluetooth.le/peripheral.fidl 中定义

序数变体类型说明
response Peripheral_StartAdvertising_Response
err PeripheralError

SyncReport flexible

在 fuchsia.bluetooth.le/periodic.fidl 中定义

新增:28
序数变体类型说明
periodic_advertising_report PeriodicAdvertisingReport
broadcast_isochronous_group_info_report BroadcastIsochronousGroupInfoReport

常量

名称值类型说明
MAX_BROADCAST_NAME_OCTETS 128 uint8
新增:24
MAX_ISO_PACKET_SIZE 4095 uint16

ISO 数据包的大小不能超过 12 位无符号整数的最大值。 请参阅蓝牙核心规范版本 6.0 | 第 4 卷,E 部分,第 5.4.5 节

新增:27
MAX_MANUFACTURER_DATA_LENGTH 252 uint8
MAX_SERVICE_DATA_LENGTH 252 uint8
MAX_STREAMS_IN_GROUP 31 uint8

可添加到连接的同步组的连接同步流数量上限。

新增:27
MAX_SUBEVENTS 128 uint8
新增:28
MAX_URI_LENGTH 278 uint16

别名

名称值说明
Psm uint16

接受面向连接的通道连接的服务的标识符。在蓝牙规范中称为(简化的)协议/服务多路复用器。

新增:24