首页 资讯 应用 高压 设计 行业 低压 电路图 关于

LED

旗下栏目: 电力电子 通信网络 RFID LED

苹果服务中心ANCS

LED | 发布时间:2017-11-26 | 人气: | #评论# | 本文关键字:ANCS,苹果
摘要:一、简介 ANCS(苹果通知服务中心)是苹果公司专门为BLE(蓝牙低功耗)所开放的接口。蓝牙低功耗设备通过连接苹果设备,就可访问苹果设备上的各类通知。 ANCS遵循的是BLE协议中的通用属性配置协

一、简介

ANCS(苹果通知服务中心)是苹果公司专门为BLE(蓝牙低功耗)所开放的接口。蓝牙低功耗设备通过连接苹果设备,就可访问苹果设备上的各类通知。

ANCS遵循的是BLE协议中的通用属性配置协议(Generic Attribute Profiles, GATT),iOS设备作为GATT的服务端,而BLE设备作为GATT的客户端。BLE设备需要搜索苹果iOS设备上ANCS所支持的各项服务,然后才能访问这些服务。

iOS设备的ANCS在与BLE设备通讯过程中,都是采用小端模式进行数据传输的,如想发送00 06,而实际则以06 00形式发送的。

传输过程中,字符串一律都采用UTF-8编码,对于英文字母来说,还是沿用单字节的ANCII编码;而对于中文来说,3个字节才能完成一个中文的编码。所以,当BLE设备接收到苹iOS设备的通知时,能够解析ANCII码,却无法解析中文的编码,需要借助其他工具才能转换成中文。

将提供ANCS服务的设备(也就是iOS设备)称作通知提供者(Notification Provider, NP);将使用ANCS服务的客户端称作通知消费者(Notification Consumer, NC)。

 二、苹果通知服务中心

ANCS的首要服务(Primary Service)的采用128位的UUID,UUID为:

7905F431-B5CE-4E99-A40F-4B1E122D00D0

由于iOS系统的限制,一个NP只能存在一个ANCS服务。也就是说,当有多个NC连接到NP时,NP的ANCS可同时服务于多个NC设备。NC需寻找并订阅GATT服务的更变特性,以便在任何时间都可监控ANCS即将发送或取消发表的通知。

1、服务的特征(Service Characteristics)

ANCS存在三个特征,它们的同样采用128位的UUID:

· 通知源(Notification Source)

UUID:9FBF120D-6301-42D9-8C58-25E699A21DBD

权限:可通知

· 控制点(Control Point)

UUID:69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9

权限:可写,带响应

· 数据源(Data Source)

UUID:22EAC6E9-24D6-4BB5-BE44-B36ACE7C7BFB

权限:可通知

 上面的三种的特征都需要访问授权。简单来说,NC设备仅仅连接上NP设备是不够的,还需进行配对与绑定后,才具备权限访问ANCS服务的特征。

其中,对于NC设备来说,必须要订阅通知源特征,而控制点特征与数据源特征则是可选择的。

2、通知源(Notification Source)

NC收到通知源特征的通知有下面三种:

· 添加NP上的iOS通知

· 修改NP上的iOS通知

· 移除NP上的iOS通知

只要NC订阅了通知源特征,就能立马收到GATT上传递的数据。因袭,NC在订阅通知源特征服务之前,必须处于一个能够适当地接收和处理消息的状态。

GATT通过通知源特征传递所传递的通知,它的格式如下所示。

苹果服务中心ANCS

 图2-1 通知格式

GATT通过通知源特征传递的通知包含下面信息:

· EventID:这个字段指明了给定的iOS通知是否添加、修改或移除。该字段的枚举值可参考后面附录的EventID Value表。

· EventFlag:该字段由位掩码组成,当某个位被置位则表明NC收到的通知具有某种特性。如iOS通知被认为是“重要”的,NC可能会想要显示一个更积极的用户界面,以确保用户用户能正确地通知到。该位字段值参考附录的EventFlags表。

· CategoryID:这个字段是一个数值,将iOS通知归类成不同的类别。NP将尽力为每个iOS通知提供准确的归类。该字段的枚举值参考附录的CategoryID Values表。

· CategoryCount:给定类别iOS通知的个数。例如,如果用户的邮箱有两条未读邮件,又推送来了一条新邮件,则此时CategoryIDCount的值为3。

· NotificationUID:一个32位数值,它是iOS通知的唯一标识符。发送到控制源特征与iOS通知交互的命令会用到该字段。

 iOS通知的生命周期可以由NP生成的通知源上的GATT通知间接推算出来,推算的方法很简单,一个通知的从开始添加到移除之间的时间就是iOS通知的生命周期。如下所示:

苹果服务中心ANCS

 图2-2 iOS通知的声明周期

3、控制点和数据源

NC可能会想与iOS通知进行交互。它可能需要获取iOS通知的更多信息,包括它的内容,或者在其基础上执行一些操作。通过操作控制点和数据源特征就可获取到这些属性。

NC通过写入特定命令到控制点特征的方式来发出获取更多iOS通知信息的请求。如果命令写入成功,NP就会及时地响应请求,通过数据源特征返回请求信息。

(1)获取通知属性

获取通知属性的命令允许NC去获取特定的iOS通知属性。获取通知属性命令的格式如下所示:

苹果服务中心ANCS

 图2-3 获取通知属性格式

获取通知属性命令包含下面信息:

· CommandID:必须设置为0(CommandIDGetNotificationAttributes)。

· NotificationUID:32位的数值,客户端先要的获取信息的iOS通知的UID。

· AttributeIDs:NC想要获取的属性列表。一些属性后面可能需要跟一个16字节长度的参数,用来指定NC想要获取属性的最大长度,以字节为单位。

 响应一个获取通知属性命令的数据格式如下所示。

苹果服务中心ANCS

 图2-4 获取通知属性响应格式

响应一个获取通知属性命令的数据包含下面信息:

· CommandID:设置为0(CommandIDGetNotificationAttributes)。

· NotificationUID:32位的数值,即想要获取属性的iOS通知所对应的UID。

· AttributeList:由属性ID、16位长度、属性所组成的一个列表。一个属性始终是字符串,并且它的长度由16位长度所决定,而不是以空(NULL)结束。如果所请求的属性是空的,或者是错过了iOS通知,那么长度设为0。

 如果响应的长度大于GATT所规定的最大传输单元(Maximum Transmission Unit, MTU),则NP会它分成多端传送。NC必须将响应的数据段重新组包。当收到所有请求属性的内容时,则表示响应完成。

责任编辑:电气自动化网
首页 | 电气资讯 | 应用技术 | 高压电器 | 电气设计 | 行业应用 | 低压电器 | 电路图 | 关于我们 | 版权声明

Copyright 2017-2018 电气自动化网 版权所有 辽ICP备17010593号-1

电脑版 | 移动版 原创声明:本站大部分内容为原创,转载请注明电气自动化网转载;部分内容来源网络,如侵犯您的权益请发送邮件到[email protected]联系我们删除。

Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。