ios蓝牙开发
开发前提介绍 : 1. XCode 2.蓝牙手环(60) 3.苹果手机一部(1000)
蓝牙开发步骤
规矩我懂 先上图
蓝牙4.2
2014.12.2 蓝牙技术联盟发布
具备更低功耗, 更高的传输速度。 唤醒速度可以和zigbee媲美
iOS蓝牙开发 基础知识
蓝牙2.0 需要MIFI 认证,这个大家都知道 。 MIFI : Make for ipad , iphone , itouch 专门为苹果设备制作的设备
蓝牙4.0 : 本文章的主讲
开发框架 : CoreBluetooth
蓝牙4.0 开始正常切入开发
central: 中心,连接硬件设备(手机端连接蓝牙手环 等等智能设备)
peripheral: 外设, 被连接的设备(仅当外设在不断广播的时候 才能被发现)
service: 服务
characteristic: 特征
_manager = [[CBCentralManager alloc] initWithDelegate: self queue: nil];
在调用这个方法的时候 带来会调用
- (void)centralManagerDidUpdataState:(CBCentralManager *)central
返回 :
当前蓝牙的状态 :
if (central.state != CBManagerStatePoweredOn) // 就代表返回失败了 当然自己看一下这个枚举
[_manager scanForPeripheralsWithServices:#你的特征值# options: nil];
# : 如果特征值写的是nil 那么当前所以可以被连接管理的蓝牙都可以扫描到
但是这里有个坑 , 已经连接上的蓝牙 不会在代理里面被返回
对应代理 :
处理 :
centralManager: (CBCentralManager *)central didDiscoverPeripheral: (CBPeripheral *)peripheral advertisementData: (NSDictionar *id)advertisementData RSSI: (NSNumber *)RSSI{
if(peripheral.name != nil && ![_perilist containsObject: peripheral]){
[_perilist addObject: peripheral];
}
}
连接外设失败 : disFailToConnectPeripheral
连接断开: didDisconnectPeripheral
连接成功: didConectPeripheral
扫描外设中的服务
discoverServices
发现并获取外设中的服务
didDiscoverServices
扫描外设对于的服务特征
discoverCharacteristice
发现并获取外设对应的服务特征 disDiscoverCharateristiceForService
给对应的特征写数据 writeValue:forCharacteristic:type
订阅特征的通知 setNotifyValue: forCharacteristic
根据特殊读取数据 didUpdataValueForCharacteristic
蓝牙开发核心代码
建立蓝牙管理类 采用单利模式
/*
这么重要的信息要注释掉
我觉得我还是视频来干这些事情比较好 写出来 好麻烦啊
*/