关于Core Bluetooth
Core Bluetooth框架为你的iOS和Mac应用跟蓝牙设备的通信提供了所需的类。例如,你的应用可以对低耗能外设进行探索,探测和交互,比如心率监视器和恒温器。自OS X v10.9和iOS 6开始,Mac和iOS设备具有了低耗能蓝牙(以下简称“蓝牙”)外设的功能,为其他设备提供数据,包括其他的Mac和iOS设备。
概览
蓝牙技术基于Bluetooth 4.0规范,其中包含了一套关于低耗能设备间通讯的协议。Core Bluetooth框架是对蓝牙低能耗协议栈的抽象。也就是说,它对开发者隐藏了许多规范的细节,使它更容易被用来开发使用蓝牙交互的应用。
中心和外设是Core Bluetooth的重要参与者
在蓝牙通信中,有两个重要的参与者:中心(Centrals)和外设(Peripherals)。它们各自扮演着不同的角色。外设通常拥有其他设备所需的数据。中心通常使用外设提供的数据来完成某些任务。例如,装备了蓝牙的数字恒温器可以向iOS设备提供室内的温度,然后在友好的用户界面展示。
各个参与者扮演各自的角色,完成一组任务。外设的存在感体现在把它们的数据广播到空中。中心扫描附近它们可能感兴趣的外设。当中心发现了这样的外设,中心会请求连接外设病开始对外设的数据进行探测和交互。外设负责一适当的方式响应中心的请求。
Core Bluetooth简化了常见的蓝牙任务
Core Bluetooth框架从Bluetooth 4.0规范中抽象出了底层细节。结果是,许多应用中需要实现的常见蓝牙任务被简化了。如果你开发的应用实现了中心的角色,Core Bluetooth使它能够轻松地发现和连接外设,并对外设的数据进行探测和交互。另外,Core Bluetooth使得在本地设备上建立外设角色更简便。
相关章节:Performing Common Central Role Tasks,Performing Common Peripheral Role Tasks
iOS应用的状态影响蓝牙的行为
当你的iOS应用处于后台或挂起状态,它与蓝牙相关的功能会受影响。默认情况下,当一用处于后台活着挂起状态下是不能执行蓝牙任务的。也就是说,如果你的应用需要在后台执行蓝牙任务,你可以声明它支持一种或两种Core Bluetooth的后台执行模式(一种为中心角色,另一种为外设角色)。即使你声明了后台执行模式,当你的应用进入后台时,某些蓝牙任务仍然会有不同的操作。你需要(原文“want to”)在设计应用时考虑这些区别。
即使应用支持后台运行,某些时候为给当前的前台应用提供内存空间,仍然被系统关闭。从iOS 7开始,Core Bluetooth支持位中心和外设保存状态信息,并在应用启动时恢复状态。你可以用这一功能来支持蓝牙设备中的长期行为。
遵循最优规范以提升用户体验
Core Bluetooth框架让你的应用可以控制多种蓝牙事务。遵循最优规范以可靠的方式利用这种控制,并提升用户体验。
例如,许多当你实现中心或者外设角色时执行的任务,会使用你的设备上的无线电装置向空中发送信号。由于你的设备上的无线电装置被其他形式的无线通讯共享,也因为无线装置的使用不利于设备电池的寿命,所以尽量使你的应用减少对无线装置的使用。
相关章节:Best Practices for Interacting with a Remote Peripheral Device,Best Practices for Setting Up Your Local Device as a Peripheral
如何使用这篇文档
如果你从未使用过Core Bluetooth框架,或者不熟悉蓝牙的基础概念,那么请通读全文。在Core Bluetooth综述中,你能学到主要的术语和概念。
了解了主要的概念之后,阅读 执行常规中心角色任务 学习如何在你的本地设备上开发应用以实现中心角色。相似地,阅读 执行常规外设角色任务 学习如何在你的本地设备上开发应用以实现外设角色。
为了确保你的应用高效执行并且遵守最优规范,请阅读后面的章节:iOS 应用的Core Bluetooth后台处理,Performing Common Peripheral Role Tasks,和在本地设备上建立外设的最优规范。
另请参阅
官方的Bluetooth Special Interest Group (SIG) website提供了蓝牙技术的权威信息。在那里,你也能找到Bluetooth 4.0specification。
如果你正在设计硬件设备的辅助软件,它们使用蓝牙技术跟苹果设备(包括Mac, iPhone, iPad, and iPod touch)通信,请阅读Bluetooth Accessory Design Guidelines for Apple Products。如果你的蓝牙辅助软件访问需要iOS设备上的通知,请阅读Apple Notification Center Service (ANCS) Specification。