Fuchsia.bluetooth.gatt2

添加了:HEAD

协议

CharacteristicNotifier

fuchsia.bluetooth.gatt2/client.fidl 中定义

听取特征通知和指示。

OnNotification

从服务器收到特征值通知或指示时调用。

  • value 请求更新后的特征的值。
  • 响应:您应立即发送一个空响应,确认已收到通知(适用于流控制)。

请求

名称类型
value ReadValue

响应

<EMPTY>

客户端

fuchsia.bluetooth.gatt2/client.fidl 中定义

ConnectToService

使用指定标识符连接 RemoteService。每项服务仅允许使用 1 个连接。

service 将因错误而关闭,并附上说明原因。

  • error 如果 handle 无效,则返回 ZX_ERR_INVALID_ARGS
  • error 如果未找到服务,则返回 ZX_ERR_NOT_FOUND
  • error 如果服务已移除,则返回 ZX_ERR_CONNECTION_RESET
  • error 如果对等方断开连接,则返回 ZX_ERR_NOT_CONNECTED
  • error 如果服务已连接,则返回 ZX_ERR_ALREADY_EXISTS

请求

名称类型
handle ServiceHandle
service server_end<RemoteService>

WatchServices

枚举在此客户端所代表的对等体上发现的服务。

您可以通过在 uuids 中指定 UUID 列表来过滤结果。此方法遵循挂起的 get 模式。初始请求时,系统将返回完整的快照。仅当自上次调用以来报告的条目中添加、修改或移除一项或多项服务时,对同一组 uuids 的后续调用才会收到响应。使用新值 uuids 的调用将重置过滤条件并收到完整的快照。

句柄可以在各项服务之间重复使用,因此句柄可以同时位于 updatedremoved 中。因此,我们建议先处理已移除的服务,然后再更新服务。

为了进一步与服务交互,客户端必须通过调用 ConnectToService() 获取 RemoteService 协议。

  • uuids 请求 UUID 许可名单。如果为空,则返回所有服务。
  • 响应 updated 自上次调用 WatchServices() 以来添加或修改的服务。返回的 ServiceInfo 表将仅包含每项服务的基本信息,并且 characteristicsincludes 字段将为 null。如果在上次调用后添加/修改服务后又将其移除,则该服务将仅出现在 removed 中,而不出现在 updated 中。如果因具有新 uuids 值的新调用而结束,updated 将为空。
  • 响应 removed 自上次调用 WatchServices() 以来已移除的服务句柄。

请求

名称类型
uuids vector<fuchsia.bluetooth/Uuid>

响应

名称类型
updated vector<ServiceInfo>[65535]
removed vector<Handle>[65535]

LocalService

fuchsia.bluetooth.gatt2/server.fidl 中定义

用于提供本地 GATT 服务的接口。关闭此协议的 server_end 会使 GATT 服务从本地 GATT 数据库中移除。同样,关闭此协议的 client_end 意味着蓝牙堆栈已从其 GATT 数据库中移除此服务。

CharacteristicConfiguration

它会通知特定对等方的特定特征/描述符的当前配置。当对等 GATT 客户端更改配置时,将调用此方法。

蓝牙堆栈会在重新连接后保持每个对等设备的配置状态。因此,当对等方针对每个特征连接到新连接的对等方配置的初始持久状态时,也会调用此方法。不过,客户端不应依赖于蓝牙堆栈无限期保留此状态。

  • 请求peer_id:与此特定 CCC 关联的 GATT 客户端的 PeerId。
  • 请求 handle:与 notifyindicate 参数关联的特征的句柄。
  • 如果客户端已启用通知,则请求 notify。否则,返回 false。
  • 如果客户端已启用指示,则请求 indicate;否则,返回 false。
  • response empty 不返回任何值以确认特征配置。

请求

名称类型
peer_id fuchsia.bluetooth/PeerId
handle Handle
notify bool
indicate bool

响应

<EMPTY>

OnIndicateValue

此事件用于向对等方发送指示。如果服务确实需要对等方确认更新,则应使用指示而非通知。

不应将指示发送给没有针对特定特征启用指示的对等设备 - 如果发送指示,则不会传播指示。蓝牙堆栈将在服务的生命周期内跟踪此配置。

LocalServices 必须跟踪 ValueChangedCredit 方法提供的可用功劳,并发送最多数量的 OnNotifyValueOnIndicateValue 事件。如果发送的事件数超过可用的赠金,或者参数无效,协议将关闭。

  • 请求 update:与已更改的特征相关联的参数。
  • 请求 confirmation 当要更新的所有对等方都确认了指示后,系统会向 confirmation 发出 ZX_EVENTPAIR_SIGNALLED 信号。如果表明任何对等设备失败,例如对等方尚未配置指示、未连接或未在 30 秒的 ATT 事务超时时限内确认(蓝牙 5.3 第 3 卷第 F 3.3.3 部分),confirmation 将关闭。如需按对等方跟踪指示确认,该实现可以在 update.peer_ids 中发送此事件,并在其中包含单个 ID。

响应

名称类型
update ValueChangedParameters
confirmation handle<eventpair>

OnNotifyValue

此事件用于向对等设备发送通知。当服务不需要对更新进行对等方确认时,应使用通知,而非指示。

不应将通知发送给没有针对特定特征启用通知的对等方 - 即使发送通知,通知也不会传播。蓝牙堆栈将在服务的生命周期内跟踪此配置。

LocalServices 必须跟踪 ValueChangedCredit 方法提供的可用功劳,并发送最多数量的 OnNotifyValueOnIndicateValue 事件。如果发送的事件数超过可用的赠金,或者参数无效,协议将关闭。

响应

名称类型
payload ValueChangedParameters

OnSuppressDiscovery

此事件之后,新的对等设备将无法再发现该服务,但已经发现该服务的对等设备可能仍然可以访问该服务。应在每个服务生命周期内发送一次该信号;多次发送将关闭协议并断开 GATT 客户端的连接。

响应

<EMPTY>

PeerUpdate

进行调用以提供特定于对等方的 GATT 信息。除非先前的调用收到响应,否则不会调用 PeerUpdate。因此,如果实现对任何 PeerUpdate 字段不感兴趣,只需忽略第一次调用即可。

在将任何其他互动从对等方传播到 LocalService(Write/ReadValue、CharacteristicConfiguration)之前,系统会尽可能进行 PeerUpdate,前提是所有之前的所有 PeerUpdate 都得到确认。

目前发送失败。请在 https://fxbug.dev/42178509 上发表评论以请求支持

  • 请求 peer_id:与更新相关的 PeerId。始终存在。
  • request mtu:此对等方的通知/指示所适合的最大字节数。超出此限制的所有字节均会被以静默方式截断。大多数客户端无需担心这一点,除非他们使用通知/指示来获得高吞吐量。可选。
  • 响应:用于确认已收到更新的空响应。

请求

名称类型
payload LocalServicePeerUpdateRequest

响应

<EMPTY>

ReadValue

在对等方请求读取特征或描述符的值时调用。可保证该对等方满足与此属性相关联的权限。

  • 请求peer_id:发出读取请求的 GATT 客户端的 PeerId。
  • 请求 handle 请求的描述符/特征的句柄。
  • 请求 offset:开始读取请求值的偏移量。
  • 响应 value 特征的值。
  • 错误 有关可能的错误,请参阅 gatt2.Error 文档。

请求

名称类型
peer_id fuchsia.bluetooth/PeerId
handle Handle
offset int32

响应

名称类型
payload LocalService_ReadValue_Result

ValueChangedCredit

为发送指示/通知的功劳充值。实现人员被定义为在调用此方法之前首先提供 INITIAL_VALUE_CHANGED_CREDITS 赠金。实现人员必须跟踪他们拥有的可用功劳。实现人员可以为每笔功劳仅发送一个 OnNotificationsValue 或 OnIndicateValue 事件。请注意,只有在上次调用后至少发送了一条指示/通知时,系统才会调用 ValueChangedCredit

请求

名称类型
additional_credit uint8

WriteValue

在对等方发出写入特征或描述符值的请求时调用。可以保证该对等方满足与此属性相关联的权限。

  • 请求peer_id:发出写入请求的 GATT 客户端的 PeerId。始终存在。
  • 请求 handle 请求的描述符/特征的句柄。始终存在。
  • request offset:开始写入值的偏移量。如果偏移量为 0,则任何现有值都应被新值覆盖。否则,应将 offset:(offset + len(value)) 中的现有值更改为 value。始终存在。
  • 请求 value:描述符/特征的新值。始终存在,但可能是空字符串。
  • 响应 值作为确认更新后,实现必须发送一个空响应。
  • 错误 有关可能的错误,请参阅 gatt2.Error 文档。

请求

名称类型
payload LocalServiceWriteValueRequest

响应

名称类型
payload LocalService_WriteValue_Result

RemoteService

fuchsia.bluetooth.gatt2/client.fidl 中定义

DiscoverCharacteristics

返回属于此服务的特征和特征描述符。

请求

<EMPTY>

响应

名称类型
characteristics vector<Characteristic>[32767]

ReadByType

读取具有给定 uuid 的特性和描述符。

此方法有助于在发现完成之前读取值,从而缩短延迟时间。

  • 请求 uuid 要读取的特征/描述符的 UUID。
  • 响应 results 读取结果。如果未读取任何匹配值,则此字段可能为空。如果读取某个值导致权限错误,相应句柄和错误也会包含在内。
  • 如果 uuid 引用内部保留的描述符类型(例如客户端特征配置描述符),则返回 INVALID_PARAMETERS
  • 如果读取的结果数超过 FIDL 响应可以容纳的数量,则返回 TOO_MANY_RESULTS。考虑在执行发现后单独读取特征/描述符。
  • 如果服务器返回并非针对单一结果的错误,则返回 FAILURE

请求

名称类型
uuid fuchsia.bluetooth/Uuid

响应

名称类型
payload RemoteService_ReadByType_Result

ReadCharacteristic

读取具有指定 handle 的特征的值。

  • 请求 handle 要读取的特征句柄。
  • 请求 options 适用于读取的选项。
  • 响应 value 特征的值。
  • 如果 handle 无效,则返回 INVALID_HANDLE
  • 如果 options 无效,则返回 INVALID_PARAMETERS
  • 如果服务器拒绝读取请求,则错误会返回 READ_NOT_PERMITTEDINSUFFICIENT_*
  • error 如果服务器返回错误,则返回 FAILURE

请求

名称类型
handle Handle
options ReadOptions

响应

名称类型
payload RemoteService_ReadCharacteristic_Result

ReadDescriptor

使用 handle 读取特征描述符的值,并在回复中返回该值。

  • 请求 handle 要读取的描述符句柄。
  • 请求 options 适用于读取的选项。
  • 响应 value 描述符的值。
  • 如果 handle 无效,则返回 INVALID_HANDLE
  • 如果 options 无效,则返回 INVALID_PARAMETERS
  • 如果服务器拒绝读取请求,则错误会返回 READ_NOT_PERMITTEDINSUFFICIENT_*
  • error 如果服务器返回错误,则返回 FAILURE

请求

名称类型
handle Handle
options ReadOptions

响应

名称类型
payload RemoteService_ReadDescriptor_Result

RegisterCharacteristicNotifier

订阅具有给定 handle 的特征的通知和指示。

通知或指示将根据特征属性启用。如果支持指示,将首选指示。如果特征没有“notify”或“suggest”属性,此操作就会失败。

如果其中包含客户端特征配置描述符,系统会发出写入请求来配置通知/指示的特征。如果在写入描述符时出错,此方法将失败。

成功后,notifier 协议可用于在对等方发送通知或指示时收到通知。系统会自动确认指示。丢弃该协议后,如果没有其他本地客户端收到通知,订阅可能会终止。

  • handle 请求特征句柄。
  • 请求 notifier 用于通知的协议。
  • 响应 如果注册成功,系统将立即发送一个空响应。
  • 错误:如果特征不支持通知或指示,则返回 FAILURE
  • error 如果 handle 无效,则返回 INVALID_HANDLE
  • Error 针对描述符写入错误返回 WRITE_NOT_PERMITTEDINSUFFICIENT_*

请求

名称类型
handle Handle
notifier CharacteristicNotifier

响应

名称类型
payload RemoteService_RegisterCharacteristicNotifier_Result

WriteCharacteristic

使用提供的 optionsvalue 写入具有 handle 的特征。

建议不要在写入正在进行时发送其他写入(服务器可能会以任何顺序同时接收写入)。

  • 请求 handle:要写入的特征。
  • 请求 value 要写入的值。
  • 请求 options 适用于写入的选项。
  • 响应:从服务器收到成功响应时,系统会发送一个空响应(如果 options.with_response 为 false,则立即发送)
  • 如果 handle 无效,则返回 INVALID_HANDLE
  • 如果 options 无效,则返回 INVALID_PARAMETERS
  • 如果服务器拒绝写入请求并给出了原因,错误会返回 WRITE_NOT_PERMITTEDINSUFFICIENT_*
  • error 如果服务器返回错误,则返回 FAILURE

请求

名称类型
handle Handle
value vector<uint8>[512]
options WriteOptions

响应

名称类型
payload RemoteService_WriteCharacteristic_Result

WriteDescriptor

使用 handlevalue 写入特征描述符。建议不要在写入正在进行时发送其他写入(服务器可能会以任何顺序同时接收写入)。

  • 请求 handle 要写入的描述符句柄。
  • 请求 value 要写入的值。
  • 请求 options 适用于写入的选项。
  • 响应:从服务器收到成功响应时,系统会发送一个空响应(如果 options.with_response 为 false,则立即发送)
  • 如果 handle 无效或引用了内部预留的描述符类型(例如客户端特征配置描述符),则返回 INVALID_HANDLE
  • 如果 options 无效,则返回 INVALID_PARAMETERS
  • 如果服务器拒绝写入并给出了原因,错误会返回 WRITE_NOT_PERMITTEDINSUFFICIENT_*
  • error 如果服务器返回错误,则返回 FAILURE

请求

名称类型
handle Handle
value vector<uint8>[512]
options WriteOptions

响应

名称类型
payload RemoteService_WriteDescriptor_Result

服务器

fuchsia.bluetooth.gatt2/server.fidl 中定义

PublishService

发布给定的 service,使其可供所有远程对等方使用。服务发布后,该服务将获得 INITIAL_VALUE_CHANGED_CREDITS 赠金,可用于发送指标/通知。

调用方必须为 info 中列出的特性和描述符分配不同的句柄。这些标识符将用于发送到 service 的请求中。

  • 请求 info 定义 GATT 服务的结构。包括将提供给对等方的特征和描述符,以及服务句柄(这在发布到此服务器的所有服务中必须是唯一的)。
  • 请求 service 根据 LocalService 的已载述行为提供服务实现。
  • 响应 空响应表示服务已成功发布。
  • 错误 请参阅 gatt2.PublishServiceError 了解可能的失败模式。

请求

名称类型
info ServiceInfo
service LocalService

响应

名称类型
payload Server_PublishService_Result

结构

处理

fuchsia.bluetooth.gatt2/types.fidl 中定义

字段类型说明默认
value uint64 无默认取景方式

LocalService_ReadValue_Response

fuchsia.bluetooth.gatt2/server.fidl 中定义

字段类型说明默认
value vector<uint8>[512] 无默认取景方式

LocalService_WriteValue_Response

fuchsia.bluetooth.gatt2/server.fidl 中定义

<EMPTY>

RemoteService_ReadByType_Response

fuchsia.bluetooth.gatt2/client.fidl 中定义

字段类型说明默认
results vector<ReadByTypeResult>[65535] 无默认取景方式

RemoteService_ReadCharacteristic_Response

fuchsia.bluetooth.gatt2/client.fidl 中定义

字段类型说明默认
value ReadValue 无默认取景方式

RemoteService_ReadDescriptor_Response

fuchsia.bluetooth.gatt2/client.fidl 中定义

字段类型说明默认
value ReadValue 无默认取景方式

RemoteService_RegisterCharacteristicNotifier_Response

fuchsia.bluetooth.gatt2/client.fidl 中定义

<EMPTY>

RemoteService_WriteCharacteristic_Response

fuchsia.bluetooth.gatt2/client.fidl 中定义

<EMPTY>

RemoteService_WriteDescriptor_Response

fuchsia.bluetooth.gatt2/client.fidl 中定义

<EMPTY>

Server_PublishService_Response

fuchsia.bluetooth.gatt2/server.fidl 中定义

<EMPTY>

ServiceHandle

fuchsia.bluetooth.gatt2/types.fidl 中定义

字段类型说明默认
value uint64 无默认取景方式

ShortReadOptions

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示用于从服务器读取简短特征或描述符值的选项。短值是指适合单个消息的值,至少为 22 个字节。目前这是一个空占位符,因为没有选项。

<EMPTY>

枚举

错误严格

类型:uint32

fuchsia.bluetooth.gatt2/types.fidl 中定义

bluetooth.gatt2.* 方法返回的错误。

这些值与蓝牙 5.2 第 3 部分 G 部分表 3.4 以及蓝牙核心规范 v9 部分 B 表 1.1 的补充值相对应,但仅供参考。客户端应依赖于这些值保持常量。规范中省略的值会在内部处理,不会返回给客户端。

LocalService 方法只能返回特定错误。这些会在注释中加以说明。

名称说明
1

句柄指示的属性无效。它可能已被移除。

它可能由 LocalService 方法返回。

2

此属性无法读取。

3

此属性不可写入。

4

表示从服务器收到的响应无效。

5

此属性需要身份验证,但客户端未经过身份验证。

7

表示读取或写入请求中使用的偏移量超出了值的边界。

它可能由 LocalService 方法返回。

8

此属性需要授权,但客户端未获得授权。

12

此属性要求连接由较大的加密密钥加密。

13

表示写入请求中指定的值会超过目的地特征或描述符允许的最大长度。

它可能由 LocalService 方法返回。

14

发生了无法归类为更具体的错误之一的常规错误。

它可能由 LocalService 方法返回。

15

此属性要求加密,但连接未加密。

17

服务器没有足够的资源来完成任务。

它可能由 LocalService 方法返回。

19

不允许使用该值。

它可能由 LocalService 方法返回。

128

应用错误。这些用例在应用级别指定。

所有这些都可以通过 LocalService 方法返回。

129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
252

配置文件或服务级别拒绝了写入请求。

253

客户端特征配置描述符配置不当。

254

配置文件或服务程序已在进行中。

255

配置文件或服务级别的值超出范围。

257

一个或多个 FIDL 调用参数无效。请参阅参数文档。

258

表示读取的结果数量超过了 FIDL 响应所允许的数量。 请考虑单独读取属性。

PublishServiceError灵活

类型:uint32

fuchsia.bluetooth.gatt2/types.fidl 中定义

服务发布期间可能发生的错误。

名称说明
1

服务句柄无效或已在发布服务的服务器上使用。

2

提供的服务 UUID 无效。

3

ServiceInfo.characteristics 字段格式无效或缺失。如果服务应为空,则矢量应该为空,但存在。

4

发生了无法归类为某个更具体的错误的常规错误。

ServiceKind 严格

类型:uint32

fuchsia.bluetooth.gatt2/types.fidl 中定义

蓝牙核心规范 v5.3 第 1 部分 A 部分 6.5.1 中所概述的 GATT 服务的类型(“类型”)。

名称说明
1

“提供可单独使用的设备功能的服务”(同上)

2

“提供与主要服务相关的额外功能 [...] 的服务,并且至少包含在一项主要服务中”(Ibid)

WriteMode 灵活

类型:uint32

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示支持的写入模式,用于将特性和描述符写入服务器。

名称说明
1

DEFAULT 模式下,在返回之前等待服务器的响应,并且不要验证 echo 响应。同时支持特征和描述符。

2

RELIABLE 模式下,系统会根据来自服务器的 echo 响应对每个值 blob 进行验证。如果值 blob 无法可靠地传递给对等方,相应过程会被取消。 仅适用于特征。

3

WITHOUT_RESPONSE 模式下,系统不会在返回前确认传送。只有具有 WRITE_WITHOUT_RESPONSE 属性的短特征支持在没有响应的情况下写入。该值必须适合单个消息。可以保证一条消息至少包含 20 个字节。如果值不合适,会生成 FAILURE 错误。写入偏移量为 0。仅适用于特征。

AttributePermissions

fuchsia.bluetooth.gatt2/types.fidl 中定义

指定对特定属性值的访问权限。

序数字段类型说明
read SecurityRequirements

指定某个属性是否具有读取权限。如果没有,则无法读取属性值。否则,只有在满足 SecurityRequirements 表中指定的权限时才能读取。

write SecurityRequirements

指定某个属性是否具有写入权限。如果没有,则无法写入属性值。否则,只有当满足 SecurityRequirements 表中指定的权限时才能写入该分区。

update SecurityRequirements

指定客户端订阅某个特征的通知或指示的安全要求。特征对通知或指示标志的支持是使用 NOTIFY 和 INDICATE 特征属性指定的。如果局部特征具有这些属性之一,则必须提供此字段。否则,此字段不得存在。

对于“描述符”,此字段会被忽略。

特征

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示本地或远程 GATT 特征。

序数字段类型说明
handle Handle

此特征在服务中的唯一标识符。对于本地特征,指定的句柄在此服务中的所有特征和描述符句柄中必须是唯一的。

始终存在。对于本地特征,此值为必填项。

type fuchsia.bluetooth/Uuid

用于标识此特征类型的 UUID。始终存在。必须为当地特征提供。

properties CharacteristicPropertyBits

特征属性位字段。 始终存在。必须为当地特征提供。

permissions AttributePermissions

此特征的属性权限。对于远程特性,在通过读取和写入请求发现权限之前,将不会显示此值。

对于本地特征,此值为必填项。

descriptors vector<Descriptor>[65532]

此特征的描述符。仅当不为空时才显示。对于本地特征,则为可选属性。

Descriptor

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示本地或远程 GATT 特征描述符。

序数字段类型说明
handle Handle

相应描述符在服务中的唯一标识符。对于本地描述符,指定的句柄在此服务中的所有特征和描述符句柄中必须是唯一的。

始终存在。对于本地描述符,此值是必需的。

type fuchsia.bluetooth/Uuid

用于标识此描述符类型的 UUID。始终存在。对于本地描述符,此值是必需的。

permissions AttributePermissions

此描述符的属性权限。对于远程描述符,在通过读取和写入请求发现权限之前,系统不会显示此值。

对于本地描述符,此值是必需的。

LocalServicePeerUpdateRequest

fuchsia.bluetooth.gatt2/server.fidl 中定义

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

LocalServiceWriteValueRequest

fuchsia.bluetooth.gatt2/server.fidl 中定义

序数字段类型说明
peer_id fuchsia.bluetooth/PeerId
handle Handle
offset uint32
value vector<uint8>[512]

LongReadOptions

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示从服务器读取长整型特征或描述符值支持的选项。长值是指不适合放进单个消息的值(超过 22 个字节)。

序数字段类型说明
offset uint16

开始读取的字节。必须小于值的长度。 可选。 默认值:0

max_bytes uint16

要读取的字节数上限。 可选。 默认值:MAX_VALUE_LENGTH

ReadByTypeResult

fuchsia.bluetooth.gatt2/client.fidl 中定义

RemoteService.ReadByType 返回的结果。

序数字段类型说明
handle Handle

特征或描述符句柄。

value ReadValue

特征或描述符的值(如果读取成功)。

error Error

无法读取值的原因(如果读取该值会导致错误)。

ReadValue

fuchsia.bluetooth.gatt2/client.fidl 中定义

用于封装从服务器收到的可能被截断的值。

序数字段类型说明
handle Handle

特征或描述符句柄。始终存在。

value vector<uint8>[512]

特征或描述符的值。始终存在。

maybe_truncated bool

如果 value 可能被截断(缓冲区已被服务器完全填满),则为 true。ReadCharacteristicReadDescriptor 应该用于读取完整的值。始终存在。

SecurityRequirements

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示可分配给特定访问权限的加密、身份验证和授权权限。

序数字段类型说明
encryption_required bool

如果为 true,则必须对物理链接进行加密才能访问此属性。如果不存在或为 false,此属性将允许未加密的访问。

authentication_required bool

如果为 true,则实体链接必须通过身份验证才能访问此属性。如果不存在或为 false,此属性将允许未经身份验证的访问。

authorization_required bool

如果为 true,客户端需要获得授权才能访问此属性。如果不存在或为 false,此属性将允许在未经授权的情况下访问。

ServiceInfo

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示本地或远程 GATT 服务。

序数字段类型说明
handle ServiceHandle

此 GATT 服务的唯一标识符。 如果它表示远程服务,则始终存在;在这种情况下,该值在返回此 ServiceInfo 的客户端中具有唯一性。本地服务是必需的,在这种情况下,发布到单个服务器实例的所有服务中必须有唯一 ID。可在对发布此服务的服务器的其他 PublishService 调用的 ServiceInfo.includes 中使用。

kind ServiceKind

指明这是主要服务还是次要服务。 对于远程服务始终存在。本地服务可选参数 默认值:ServiceKind::PRIMARY

type fuchsia.bluetooth/Uuid

用于标识此服务类型的 UUID。可能会有多项服务具有相同的 UUID。对于远程服务始终存在。本地服务要求。

characteristics vector<Characteristic>[32767]

此服务的特征。 本地服务要求。对于远程服务,从不显示。

includes vector<ServiceHandle>[65535]

此服务包含的其他服务的句柄。对于本地生活服务,则为可选。对于远程服务,此字段从不存在。 TODO(https://fxbug.dev/42147529):本地服务目前不支持此功能。

ValueChangedParameters

fuchsia.bluetooth.gatt2/server.fidl 中定义

用于指示特征值从 LocalService 更改为对等的参数。

序数字段类型说明
handle Handle

有信号的特征值的句柄。 必填。

value vector<uint8>[512]

更新后的特征值。 对于使用高吞吐量指示/通知的客户端(不推荐),请注意以下事项:虽然静态限制为 MAX_VALUE_LENGTH,但实际限制取决于 LocalService.PeerUpdate 通知的特定对等方的配置。任何超出此限制的字节都会被堆栈在内部截断。必填。

peer_ids vector<fuchsia.bluetooth/PeerId>

仅向部分对等方发送信号。 如果不存在或为空,则向所有可更新的对等方发出信号。如果包含,系统将仅向此列表中的一组对等设备发出信号。 仅当对等方已根据 LocalService. CharacteristicConfiguration 配置了更新或通知时,它们才会收到信号;peer_ids 中的其他对等方将被忽略。

WriteOptions

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示支持的选项,用于将特征/描述符值写入服务器。

序数字段类型说明
write_mode WriteMode

写入操作的模式。对于描述符,仅支持 WriteMode.DEFAULT(可选)。默认值:WriteMode.DEFAULT

offset uint16

请求从指示的字节开始的写入。 如果 write_modeWriteMode.WITHOUT_RESPONSE,则必须缺失或为 0。可选。 默认值:0

联合

LocalService_ReadValue_Result 严格

fuchsia.bluetooth.gatt2/server.fidl 中定义

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

LocalService_WriteValue_Result 严格

fuchsia.bluetooth.gatt2/server.fidl 中定义

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

ReadOptions 灵活

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示用于从服务器读取特征或描述符值支持的选项。

序数变体类型说明
short_read ShortReadOptions

执行简短的读取,该操作可能会被截断(如结果中的 Maybe_truncated 所示)。GATT 服务中的大多数读取都是短读取(<= 22 字节)。

long_read LongReadOptions

如果存在,请使用指定的选项执行长时间读取。 可选。 默认:将执行简短的读取操作。

RemoteService_ReadByType_Result 严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

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

RemoteService_ReadCharacteristic_Result 严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

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

RemoteService_ReadDescriptor_Result 严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

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

RemoteService_RegisterCharacteristicNotifier_Result 严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

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

RemoteService_WriteCharacteristic_Result 严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

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

RemoteService_WriteDescriptor_Result 严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

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

Server_PublishService_Result 严格

fuchsia.bluetooth.gatt2/server.fidl 中定义

序数变体类型说明
response Server_PublishService_Response
err PublishServiceError

BITS

CharacteristicPropertyBits 严格

类型:uint16

fuchsia.bluetooth.gatt2/types.fidl 中定义

特征属性位字段的可能值。这些字段指定了针对特定特性允许的 GATT 流程。

名称说明
1
2
4
8
16
32
64
256
512

常量

名称类型说明
INITIAL_VALUE_CHANGED_CREDITS 10 uint32

定义的赠金金额,用于在 LocalService 首次发布时发送指示/通知。

MAX_ATTRIBUTE_COUNT 65535 uint16
MAX_CHARACTERISTIC_COUNT 32767 uint16
MAX_DESCRIPTOR_COUNT 65532 uint16
MAX_SERVICE_COUNT MAX_ATTRIBUTE_COUNT uint16
MAX_VALUE_LENGTH 512 uint16