@implementation ViewController
- (void)viewDidLoad {
? ?[super viewDidLoad];
? ?// 藍牙
? ?// 1.創(chuàng)建一個藍牙對象
? ?self.manager = [[CBCentralManager alloc] initWithDelegate:self queue:dispatch_get_main_queue()];
? ?// 2.進行檢索操作
? ?// nil: 任意的外設
? ?[self.manager scanForPeripheralsWithServices:nil options:nil];
}
// 如果藍牙的狀態(tài)改變的話,就會調用這個方法
// 這個方法一定要實現,要不然會出錯.
- (void)centralManagerDidUpdateState:(CBCentralManager *)central;
{
? ?NSLog(@"藍牙的狀態(tài)改變了");
}
// 3.如果發(fā)現了藍牙設備,就會調用這個方法
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI;
{
? ?// 4.連接外設(別的藍牙設備)
? ?[self.manager connectPeripheral:peripheral options:0];
}
// 5.連接上某個設備后,調用這個方法
- (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral
{
? ?// 6.嘗試發(fā)現外設的某項服務
? ?[peripheral discoverServices:nil];
? ?peripheral.delegate = self;
}
// 7.如果發(fā)現某一項服務,就調用這個方法
- (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(nullable NSError *)error;
{
? ?if (error) {
? ? ? ?return;
? ?}
? ?for (CBService *service in peripheral.services) {
? ? ? ?if ([service.UUID.UUIDString isEqualToString:@"123"]) {
? ? ? ? ? ?// 尋找所對應的特征
? ? ? ? ? ?[peripheral discoverCharacteristics:nil forService:service];
? ? ? ?}
? ?}
}
// 8.找到這個服務所組成的特征時,調用這個方法
- (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
{
? ?NSLog(@"可以進行一些通訊操作.傳值操作");
}
@end