从上面我们知道,中心设备是用来扫描周围的外设,两台设备的通讯中,必须有一个充当中心设备,一个充当外设,外设是由CBPeripheralManager进行管理,主要方法如下: //设置外设管理中心代理 *)peripheral; //连接回复时调用的方法 和centralManager类似 - (void)peripheralManager:(CBPeripheralManager *)peripheral :(NSDictionary<NSString *, id> *)dict; //开始发送广播时调用的方法 - (void)peripheralManagerDidStartAdvertising:(CBPeripheralManager *)peripheral error:(nullable NSError *)error; //添加服务调用的回调 - (void)peripheralManager:(CBPeripheralManager )peripheral didReceiveReadRequest:(CBATTRequest *)request; //收到写请求时触发的方法 - (void)peripheralManager:(CBPeripheralManager
service委托 | set didAddService block [baby peripheralModelBlockOnPeripheralManagerDidUpdateState:^(CBPeripheralManager //设置添加service委托 | set didAddService block [baby peripheralModelBlockOnDidStartAdvertising:^(CBPeripheralManager }]; //设置添加service委托 | set didAddService block [baby peripheralModelBlockOnDidAddService:^(CBPeripheralManager
end 实现BlueToothTool.m文件如下: #import "BlueToothTool.h" @implementation BlueToothTool { //外设管理中心 CBPeripheralManager //向服务中添加特征 _ser.characteristics = @[_readChara,_writeChara]; _peripheralManager = [[CBPeripheralManager CBAdvertisementDataLocalNameKey:@"WUZIGame"}]; } //外设检测蓝牙状态 -(void)peripheralManagerDidUpdateState:(CBPeripheralManager [self showAlert]; }); } } //开始放广告的回调 -(void)peripheralManagerDidStartAdvertising:(CBPeripheralManager { NSLog(@"添加服务失败"); } NSLog(@"添加服务成功"); } //中心设备订阅特征值时回调 -(void)peripheralManager:(CBPeripheralManager
manager: CLLocationManager, didExitRegion region: CLRegion) { } (四)通过 IBeacon 技术,使用 CoreBluetooth 框架下的 CBPeripheralManager lazy var peripheralManager: CBPeripheralManager = CBPeripheralManager(delegate: self, queue: DispatchQueue.main identifier: id) return region }() func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager break } } func peripheralManagerDidStartAdvertising(_ peripheral: CBPeripheralManager
在iOS7,Core Bluetooth框架支持保存中心管理者和周边管理者(就是你的CBCenteralManager && CBPeripheralManager 对象)的状态信息,并且支持在app 您可以通过使用外设管理器在CBPeripheralManager:willRestoreState:方法中提供的字典的键,以类似的方式恢复CBPeripheralManager对象。
二:BLE的两种模式 BLE的两种模式分为CBCentralMannager 中心模式 和CBPeripheralManager 外设模式,在这里主要和大家分享CBCentralMannager 中心模式的开发和使用
由于很多文章同时讲CBCentralManager和CBPeripheralManager,所以很容易傻傻分不清楚。