
Core Bluetooth框架提供了一些类,使得妳的iOS 和Mac 应用可以与那些带有蓝牙低功耗(Bluetooth low energy)技术的设备通信。例如,妳的应用程序可以发现、搜索并且与低功耗外设进行交互式通信,比如心率仪和数字恒温器。从OS X v10.9 和iOS 6 开始,Mac和iOS设备也可以扮演蓝牙低功耗外设的角色了,它们可向其它设备提供数据,包括其它的Mac 和iOS 设备。
蓝牙低功耗无线技术,是基于蓝牙4.0 规范的,后者定义了一系列的协议,用于在低功耗设备之间通信。Core Bluetooth框架是对蓝牙低功耗协议栈的抽象。也就是说,它在妳面前将狠多底层的规范细节隐藏掉了,使得妳可以更轻松地开发出与蓝牙低功耗设备通信的软件。
在蓝牙低功耗通信中,有两个关键角色:中央设备和外设。每个角色在蓝牙低功耗通信中起到的作用都不一样。一般情况下,外设拥有着其它设备所需要的数据。中央设备一般都需要利用由外设提供的数据来完成某些任务。例如,一个带有蓝牙低功耗技术的数字恒温器,可以向一个iOS 应用来提供当前的室温数据,后者再以一种友好的方式向用户显示温度。
在蓝牙低功耗通信中,每个角色所完成的任务是不一样的。外设向周围发送它们所拥有的数据的广播,以便于被其它设备发现。另一方面,中央设备,可以扫描,寻找那些可能拥有它感兴趣的数据的外设。当中央设备找到了一个这样的外设时,它可以要求与该外设连接,然后开始获取或修改该外设的数据。该外设就需要对中央设备做出适当的响应。
相关章节: “Core Bluetooth概述”
Core Bluetooth框架将蓝牙4.0 规范中的底层细节抽象掉了。由此导致了,在妳的软件中所需要实现的与常见蓝牙低功耗相关的任务都变得简单了。如果妳在开发一个充当中央设备角色的软件,那么,Core Bluetooth让妳可以轻易完成这些任务:扫描并连接到外设,获取并修改该外设的数据。另外,Core Bluetooth使得妳可以轻易地让一个本地设备充当外设的角色。
相关章节: “完成常见的中央设备任务” “完成常见的外设任务”
当妳的iOS 软件处于后台(background)或停顿(suspended)状态时,它的蓝牙相关的功能也会受到影响。默认情况下,当妳的软件处于后台或停顿状态时,它无法再进行蓝牙低功耗相关的操作了。不过呢,如果妳需要让妳的软件在处于后台状态时仍然能够进行蓝牙低功耗相关操作的话,妳可以声明让它支持一种或两种Core Bluetooth 后台执行模式(一种是中央设备模式,一种是外设模式)。即使妳声明了这些后台执行模式,某些蓝牙相关的操作也会在处于后台模式时有所不同。在设计软件时,要把这些因素考虑在内。
即使是支持后台处理功能的软件,也可能在任何时候被系统终止掉,以便为当前的前台软件腾出内存空间。从iOS 7 开始,Core Bluetooth支持为中央设备和外设管理器保存状态信息,并在软件启动时恢复这些状态信息。妳可以利用这个特性来实现与蓝牙设备相关的一些长时间的操作。
相关章节: “ iOS 软件的 Core Bluetooth 后台处理”
Core Bluetooth框架使得妳可以控制很多常见的蓝牙低功耗操作过程。按照最佳实践来做,加强对这一块的控制,以产生出更好的用户体验。
例如,在实现中央设备或外设时,很多操作都需要使用设备上的天线来发射信号。由于设备的天线还要用于其它类型的无线通信,并且无线相关的操作会显著缩短电池的寿命,因此,在妳的软件中尽量少地使用天线吧。
相关章节: “与远端外设交互时的最佳实践” “将妳的本地设备实现成外设时的最佳实践”
如果妳从没使用过Core Bluetooth 框架,或者妳对基本的蓝牙低功耗概念都不熟悉,那么,完整地读一遍本文档。在“Core Bluetooth概述”中,妳会学到一些关键的术语和概念,这些东西在本文档的后续部分会用到。
在理解了关键的概念之后,阅读“实现常见的中央设备任务”以学习如何开发出一个软件来让妳的本地设备充当中央设备的角色。同样地,要想学习如何将本地设备实现为一个外设的话,就阅读“实现常见的外设任务”。
为了确保妳的软件正常运转,并且采用了最佳实践,就要阅读其后的章节:“ iOS 软件的 Core Bluetooth 后台处理” “与远端外设交互时的最佳实践 ”和“将本地设备实现为外设时的最佳实践”。
官方的蓝牙特殊兴趣小组(SIG)网站提供了关于蓝牙低功耗无线技术的权威信息。妳可以在那里找到蓝牙 4.0 规范。
如果妳正在开发可使用蓝牙低功耗技术与苹果产品(包括Mac、iPhone、iPad和iPod touch)通信的硬件,则阅读用于苹果产品的蓝牙附件设计向导。如果妳的蓝牙附件(通过一个蓝牙低功耗链路与某个iOS 设备连接)需要访问到iOS 设备上产生的通知的话,就阅读 苹果通知中心服务(ANCS)规范 。
未知美人
未知美人
HxLauncher: Launch Android applications by voice commands