GATT系列精讲前九篇把 GATT 的数据交换机制讲完了:发现、读写、推送、承载、连接。但有一个更根本的问题还没解决:客户端连上服务器后,怎么知道对方的服务表长什么样?怎么知道对方支持哪些高级特性?如果服务表变了,客户端怎么感知?这些问题的答案不在某个具体的业务服务里,而在一个特殊的元服务里——GATT Service 本身。
目录
一、四张布告的总览
二、Service Changed:服务表变更的红色警报
三、Client Supported Features:客户端的能力登记簿
四、Database Hash:服务表的 128 位指纹
五、Server Supported Features:服务器的能力门牌
六、空口实录:GATT Service 的完整发现
七、工程启示:元服务的设计哲学
八、测验
GATT Service 是服务器必须暴露的一个主服务,UUID 是 0x1801,但它不承载业务数据,只承载关于 GATT 自身的元信息。你可以把它想象成一个小区的门卫室:里面没有住户,但贴着全楼的住户名单、最新通知、以及物业自己的能力说明。这一篇把门卫室里的四个布告讲清楚:Service Changed、Client Supported Features、Database Hash、Server Supported Features。
一、四张布告的总览
GATT Service 里最多挂四个特征,每个都有自己的 UUID 和职责。规范用一张表列出了它们的支持要求:
<