公司的蓝牙开发主要运用在门禁,扫描附近的蓝牙设备,将公司的蓝牙设备集成一个数组并展示列表,点击连接蓝牙,接连成功之后扫描设备特征值并获取设备的uuid,并写入指令开门。
CBCentralManager
//系统蓝牙设备管理对象,可以把他理解为主设备,通过他,可以去扫描和链接外设
CBCentralManager *_manager;
初始化蓝牙
//初始化并设置委托和线程队列,最好一个线程的参数可以为nil,默认会就main线程
_manager = [[CBCentralManager alloc]initWithDelegate:self queue:dispatch_get_main_queue()];
}
初始化调用centralManagerDidUpdateState 我们需要实现这个方法来确保本地设备支持BLE。
-(void)centralManagerDidUpdateState:(CBCentralManager *)central{
switch (central.state) {
case CBCentralManagerStateUnknown:
NSLog(@">>>CBCentralManagerStateUnknown");
break;
case CBCentralManagerStateResetting:
NSLog(@">>>CBCentralManagerStateResetting");
break;
case CBCentralManagerStateUnsupported:
NSLog(@">>>CBCentralManagerStateUnsupported");
break;
case CBCentralManagerStateUnauthorized:
NSLog(@">>>CBCentralManagerStateUnauthorized");
break;
case CBCentralManagerStatePoweredOff:
NSLog(@">>>CBCentralManagerStatePoweredOff");
break;
case CBCentralManagerStatePoweredOn:
NSLog(@">>>CBCentralManagerStatePoweredOn");
//开始扫描周围的外设
[_manager scanForPeripheralsWithServices:nil options