蓝牙的实现原理网上很多 在此就不一一描述了 有需要的可以看以下的文章学习
在ios 的开发中iBeacon和BLE的区别
iBeacon介绍
iOS蓝牙空中升级(固件升级)
本文主要是写实现过程:
github 上完整Demo地址,大家可以下载看看:ZYiBeacon
项目需求:
业主反馈拿出门卡开门这一动作繁琐,想要手机蓝牙连接门口机进行摇一摇或者点击对应的大门,实现开门功能。
实现步骤:
1. 扫描蓝牙设备,将设备列表展示
2. 连接其中一台设备
3. 连接成功后,向外设发送一串开锁指令
4. 发送成功后,断开和外设的连接
代码实现思路:
1. 需要蓝牙管理者mgr 管理者可以扫描外围设备 遵守CBCentralManagerDelegate协议
2. mgr扫描到外设,与外设进行连接断开连接信息交流等一系列反馈回调 需要遵循CBPeripheralDelegate协议
主要实现:
封装一套管理类,在工程的任何地方 只要shareSYSearchPeriphalsMgr 就可以得到管理者
+ (SYSearchPeriphalsMgr *) shareSYSearchPeriphalsMgr{
static SYSearchPeriphalsMgr * mgr;
if (mgr == nil) {
mgr = [[SYSearchPeriphalsMgr alloc]init];
dispatch_queue_t centralQueue = dispatch_queue_create("no.nordicsemi.ios.nrftoolbox", DISPATCH_QUEUE_SERIAL);
mgr.bluetoothManager = [[CBCentralManager alloc] initWithDelegate:mgr queue:centralQueue];
mgr.peripherals = [NSMutableArray ar