iOS蓝牙技术

本文介绍了iOS蓝牙开发的中心者模式和管理者模式,重点讲解了蓝牙开发中的服务、特征和UUID等核心概念,以及蓝牙连接的七个步骤,包括设备搜索、连接、服务和特征发现以及数据读写。提供了一个基本的蓝牙通信传输过程。
摘要由CSDN通过智能技术生成

蓝牙开发分为中心者和管理者模式:
1.中心者模式是常用模式(99.99%),即我们的手机作为主机,连接蓝牙外部设备;
2.管理者模式用得比较少,这种模式是手机作为外设,自己创建服务和特征,由其他设备连接手机。

蓝牙开发需要先了解几个概念:
服务 (services) :蓝牙外设对外广播必定会有一个服务,可能有多个,服务下面包含一些特征,服务可以理解成一个模块的窗口;
特征 (characteristic) :存在于服务下面的,一个服务下面可以存在多个特征,特征可以理解成具体实现功能的窗口,一般特征都会有value,也就是特征值,特征是与外界交互的最小单位;
UUID:可以理解成蓝牙上的唯一标识符 (硬件上肯定不是这个意思,但是这样理解便于我们开发) ,为了区别不同的服务和特征,或者给服务和特征取名字,我们就用UUID来代表服务和特征。

蓝牙连接大致分为以下几个步骤:
1.建立一个central Manager实例进行蓝牙管理
2.搜索外围设备
3.连接外围设备
4.获取外围设备的服务
5.获取服务的特征
6.从外围设备读取数据
7.给外围设备发送数据

//导入系统的BLE框架
#import <CoreBluetooth/CoreBluetooth.h>

//遵守2个协议
@interface ViewController ()<CBCentralManagerDelegate,CBPeripheralDelegate>

@property (nonatomic, strong) CBCentralManager *cbManager;  //中心管理者
@property (nonatomic, strong) CBPeripheral *peripheral;     //连接到的外围设备

@end

初始化中心管理者,并设置代理

_cbManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
#pragma mark - delegate
//只有中心管理者初始化,就会触发此代理方法,判断手机蓝牙状态
- (void)centralManagerDidUpdateState:(CBCentralManager *)central {
    /*
     {
     CBManagerStateUnknown = 0,
     CBManagerStateResetting,
     CBManagerStateUnsupported,
     CBManagerStateUnauthorized,
     CBManagerStatePoweredOff,
     CBManagerStatePoweredOn,
     }
     */
    switch (central.state) {
        case 0:
            NSLog(@"CBManagerStateUnknown");
            break;
        case 1:
            NSLog(@"CBManagerStateResetting");
            break;
        case 2:
            NSLog(@"CBManagerStateUnsupported");
            break;
        case 3:
            NSLog(@"CBManagerStateUnauthorized");
            break;
        case 4:
            NSLog(@"CBManagerStatePoweredOff");
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值