![【GATT】规范精讲[10]: GATT 服务自述——服务变更与能力对账](http://pic.xiahunao.cn/yaotu/【GATT】规范精讲[10]: GATT 服务自述——服务变更与能力对账)
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 和职责。规范用一张表列出了它们的支持要求: