1 ANCS综述
ANCS即 Apple Notification Center Service。是IOS系统中的一个通知服务。设备连接手机后,设备首先需要先使能IOS系统的通知功能,具体即设备上的GATT 客户端发现IOS上的ANCS,并且使能其 通知源Characteristics 的notify功能。 之后IOS系统就会通过ble 推送消息给设备了。
通常推送的消息仅仅是一个简短通知,比如通知有一个社交消息。如果需要获取详细消息,还需要 设备通过 控制点 Characteristics 主动发送控制指令给 ANCS服务,让其返回详细信息。返回的详细信息通过一个数据源Characteristics来返回。所以连接上服务后除了使能通知源Characteristics的notify功能,还需要使能 数据源Characteristics的notify功能,因为可能需要通过数据源来获取通知的详细信息。
如下图所示:NC(通知消费者)连接NP(通知提供者)上后发现服务,然后 订阅(使能通知功能) 通知源和数据源,之后如果NP有消息就会 通过 通知源 通知NC了。
综上,ANCS是一个服务,
其服务UUID是特定的为7905F431-B5CE-4E99-A40F-4B1E122D00D0
该服务会主动推送一些 通知消息给 设备,所以有一个具有notify功能的Characteristics。
该特性称为Notification Source.
(注意这里 notify指的是Characteristics的发送消息方式, 而notification source仅仅是一个称谓,就是字面意思,表示这个Characteristics的目的是为了推送一些通知,所以称为通知源)
通过notification source发送过来的通知仅仅是简短的消息。如果希望获取更消息的消息则需要 设备主动发送控制指令给手机上的ANCS,所以该服务还有一个具有写功能的Characteristics,这样就可以通过这个Characteristics来发送控制指令给ANCS服务。这个特性称为Control Point
发送控制消息后 ANCS服务会返回更详细的消息。这个消息不会再通过notification source这个Characteristics,而是用过另一个具有 notify功能的Characteristics来返回,该特性称为Data Source。
综上ANCS服务至少有3个特性。其UUID如下:
· Notification Source: UUID 9FBF120D-6301-42D9-8C58-25E699A21DBD (notifiable)
· Control Point: UUID 69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9 (writeable with response)
· Data Source: UUID 22EAC6E9-24D6-4BB5-BE44-B36ACE7C7BFB (notifiable)
即 :notify source 这个Characteristics 是NP用来发送通知给NC的,
Control point这个Characteristics 是NC用来发送控制命令给NP的,如获取通知详细信息。
Data source这个Characteristics 是NP收到NC获取详细信息命令后返回通知的详细信息
下面分别介绍三个Characteristics 中(也可以认为是三个数据通道)传输的数据的 内容和格式
2 notify source :通知源
NP发送通知给NC的通道。其上发送的数据格式如下:
2.1 EventID:
表示这个通知是 added, modified, removed 三种中的哪种。
如果手机收到一个qq消息,则手机(NP)发给一个 a