600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Android 蓝牙 IOS ANCE协议介绍 - 史上最详细

Android 蓝牙 IOS ANCE协议介绍 - 史上最详细

时间:2022-08-10 01:37:44

相关推荐

Android 蓝牙 IOS ANCE协议介绍 - 史上最详细

一:BLE-ANCS协议介绍

1、ANCS(Apple Notification Center Service)是IOS系统中的一个通知服务,使用该服务的方式为,设备连接手机后,设备上的GATT客户端发现IOS手机端上的ANCS服务,并且使能其通知源Characteristics的notifys功能,之后IOS系统就会通过ble推送消息给设备。

2、通常推送的消息仅仅是一个简短通知,比如通知有一个社交消息,如果需要获取详细内容,还需要设备通过控制点Characteristics主动发送控制指令给ANCS服务,让其返回详细内容,返回的详细信息通过一个数据源Characteristics来返回。所以连接上服务后除了使能通知源Characteristics的notify功能,如果需要获取通知的详细信息,还需要使能数据源Characteristics的notify功能。

3、ANCS服务及其几个特征:

ANCS服务:UUID 7905F431-b5CE-4E99-A40F-4B1E122D00D0

Notification Source:UUID 9FBF120D-6301-42D9-8C58-25E699A21DBD(notifiable属性),NP用来发送通知给NC。

Control Point:UUID 69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9(writeable with response),NC用来发送控制命令给NP,如获取通知详细信息。

Data Source:UUID 22EAC6E9-24D6-4BB5-BE44-B36ACE7C7BFB(notification),NP收到NC获取详细信息命令后返回通知的详细信息。

4、NC(消息消费者)与NP(消息提供者)交互

notification source发送给NC设备的通知仅仅是简短的消息,如果希望获取详细的消息则需要NC设备主动发送控制指令给NP设备上服务的Control Point特征,发送控制消息后ANCS服务会返回更详细的消息,但是这个消息不会再通过notification source特征,而是通过Data Source特征。

二:ANCS服务支持的Characteristics

notify source通知源

NP发送通知给NC的通道,发送的数据格式如下:

a. EventID:表示通知的类型 主要有added,modified,removed

eg:手机收到微信消息,则INP设备发送一个added类型的通知给NC设备,如果NP设备在通知栏主动清除了这通知,则NP设备就会发送一个removed的通知给NC设备。

b. EventFlags:使用每个bit表示通知的特性

c. CategoryID

d. Category Count

​ 统计当前收到的这个类型的通知已经有多少个,比如NP设备收到一条微信消息时,推送给NP设备,这时Category Count就为1,如果手机不处理这个通知,则当再收到微信消息时就会再推送一条通知给NC设备,其CategoryCount就为2了,依此类推,手机没处理的消息通知,推送到NC设备其CategoryCount就会累加。

​ e. NotificationID

​ 用来唯一标识一个通知,ANCS建立连接后收到的每个通知都有一个NotificationID,通知只是一个简短消息,通常再需要发送指令给NP设备来获取通知的详细信息,这个时候就需要这个NotificationID来标识是想获取哪个通知的详细信息。

以上就是通知源特征上推送的通知的格式。

Control Point控制点

​ 控制点可以用来获取通知的详细信息,还可以做一些预定义操作,比如来电通知就有积极动作(接听)和消极动作(拒接),所以控制点除了用来发送获取通知详细信息的命令,还可以用来发送执行预定义的积极动作或消极动作的指令。获取通知详细信息的命令的格式如下:

Data Source数据源

数据源即用来返回数据的,在控制点上发送的获取详细信息的命令后,就会再数据源通道上返回通知的详细信息,通知的详细信息由一系列的Attribute组成,如下表

获取手机上产生本条通知的APP的信息

前面提到收到通知后,一般需要再在控制通道上发送获取信息详细内容的命令来获取通知相关的一些更具体的信息,其中NotificationAttributeIDAppIdentifier就是用来标识App的来源的,得到了AppIdentifier后再通过获取app信息的命令来获取产生这个通知的app的信息,命令格式如下

其中app相关的attribute只有一个,即其名字

CommandID为1,AppIdentifier与命令中的app id对应,用来指示获取哪个app信息

执行通知预定义动作

通知源部分有提到一些通知具有一些预定义的执行动作,通过通知的EventFlags字段来指示这个通知是否有预定义的积极动作或消极动作,比如来电通知就有接听或拒接的 积极动作或消极动作,所以如果收到来电通知时,即通知CategoryID字段为CategoryIDIncomingCall时,如果接听,就可以让设备在控制点通道上发送执行积极动作的命令,同理如果拒接,就在控制点通道上发送执行消极动作的命令。

命令格式如下

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。