中心端执行常见类型的蓝牙任务,例如发现和连接到可用的外围设备,以及探索外围设备必须提供的数据并与之交互。
- 启动中央管理器
- 发现并连接正在广播的外围设备
- 连接到外围设备后探索外围设备上的数据
- 向外围服务的特征值发送读写请求
- 订阅特征值以在更新时得到通知
启动中央管理器
myCentralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:nil];
发现正在广播的外围设备
[myCentralManager scanForPeripheralsWithServices:nil options:nil];
注意:如果指定第一个参数为nil,中央管理器返回所有发现的外围设备,而不管它们支持的服务。在实际的应用中,通常会指定一组CBUUID对象,每个对象代表外围设备正在广播的服务的唯一标识符(UUID),中央管理器仅返回广播这些服务的外围设备,从而允许扫描感兴趣的设备。
每次中央设备发现外围设备,就会调用下面的代理方法。新发现的设备由CBPeripheral对象返回。如果要连接发现的外围设备,保持对它的引用,以便系统不会释放它。下面的例子演示了使用属性对外围设备引用的场景。
- (void)centralManager:(CBCentralManager *)central
didDiscoverPeripheral:(CBPeripheral *)peripheral
advertisementData:(NSDictionary *)advertisementData
RSSI:(NSNumber *)RSSI