iOS 蓝牙设备
一、 蓝牙管理类的初始化
CBCentralManager *blueManager = [[CBCentralManager alloc]initWithDelegate:self queue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) options:nil];
二、检查外部蓝牙设备是否可用
- 在CBCentralManager初始化之后会自动调用
centralManagerDidUpdateState
,在蓝牙的状态为开即centralManager.state == CBManagerStatePoweredOn
时,进行蓝牙扫描。
- (void)centralManagerDidUpdateState:(CBCentralManager *)central{
if (central.state == CBManagerStatePoweredOn) {
[weakManager startScan];
}
}
三、开始扫描蓝牙设备
- 扫描指定UUID 的设备,在options 里面配置是否允许重复的key,当services入参为空值时,默认扫描所有设备。
[self.blueManager scanForPeripheralsWithServices:@[] options:@{CBCentralManagerScanOptionAllowDuplicatesKey:[NSNumber numberWithBool:YES]}];
四、结束蓝牙设备扫描
[CBCentralManager stopScan];
四、连接指定设备
- 在正确扫描设备之后需要在
CBCentralManagerDelegate
实现其中的发现设备代理,用户可以在发现代理中进行数据的去重和回调操作。
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI {
if (central) {
DeviceModel *model = [[DeviceModel alloc] init];
model.deviceName = periphera