一、蓝牙基础知识

(一)常见简称

   1.MFI  make for ipad ,iphone, itouch 专们为苹果设备制作的设备,开发使用ExternalAccessory 框架(认证流程貌似挺复杂的,而且对公司的资质要求较高),详见:关于MFi认证你所必须要知道的事情

  2.BLE buletouch low energy,蓝牙4.0设备因为低耗电,所以也叫做BLE,开发使用CoreBluetooth 框架(因为苹果系统的更新与设备,当下苹果设备蓝牙都是支持蓝牙4.0[BLE(Bluetoothlow energy)],关于普通蓝牙ExternalAccessory这里就不做介绍)

(二)两种模式

    1.CBCentralMannager 中心模式 :以手机(app)作为中心,连接其他外设的场景     

    2. CBPeripheralManager 外设模式:使用手机作为外设连接其他中心设备操作的场景

PS:因为苹果设备的安全性和封闭性,苹果设备不能通过与其他设备蓝牙链接进行文件传输等功能,所以在iOS与蓝牙开发的编程中是CBCentralMannager 中心模式编程居多.




iOS蓝牙开发系统库



(三)CBPeripheral 、CBService、CBCharacteristic

    一个CBPeripheral可以在设备列表搜索到一个或多个CBService,一个CBService对应一个或多个CBCharacteristic,每一个CBCharacteristic对应着蓝牙设备的不同属性,通过读的CBCharacteristic可以获取到蓝牙设备发送出来的信息,通过写的CBCharacteristic可以由客户端向蓝牙设备发送指令.

(四)关于蓝牙系统开发库的初步认识

当我们使用CoreBluetooth系统框架进行蓝牙开发的时候,有时候某种功能需要和指定的蓝牙设备进行操作,这就需要我们拿到蓝牙设备的唯一标识,来确定是哪一台设备,先看下一当我们扫描到的蓝牙设备时,所能拿到的属性:



获取蓝牙外设信息的类







蓝牙外设各种状态




在开发蓝牙编程中,蓝牙外设的设备名称,设备UUID,设备读写属性的UUIDD可以通过与硬件厂商沟通获取到或者通过蓝牙助手进行获取,iOS蓝牙4.0的开发基于和搜索到UUID进行匹配,然后建立通信通道,因此关于设备的UUID至关重要.

二.蓝牙编程开发

     (一) 准备工程




蓝牙设备基础信息



      2.引入头文件,遵循代理,创建蓝牙开发对象

#import  <CoreBluetooth/CoreBltooth.h>        //蓝牙开发引用的系统库
<CBCentralManagerDelegate,CBPeripheralDelegate>  //蓝牙中心模式开发遵循的代理
@property (nonatomic,retain) CBCentralManager *manager;  //蓝牙操作对象
@property (nonatomic,retain) CBPeripheral *peripheral;      //获取蓝牙设备信息的对象
@property (nonatomic,retain) CBCharacteristic *characteristic;  //蓝牙设备读写服务操作对象



三.小结

       当下各种智能硬件的兴起,客户端链接外设需求开始多起来,由于公司智能医疗设备的接入,使作者对于iOS蓝牙接入头疼了一个月,这一个月也是遇到好多巨坑,瑾以此篇献给那些奋斗在蓝牙第一线和需要了解蓝牙开发的小伙伴们,希望各位小伙伴能对我文章予以斧正