IOS 蓝牙(BLE)4.0 的认知与开发

随着物联网的发展,有关蓝牙的开发也是越来越多,以 IOS 的框架为核心,简述一下自己的经历对蓝牙的认知与开发过程。

1.蓝牙 框架的发展:gamekit -- > mutipeer --> coreBluetooth. 现在的蓝牙开发基本上都是以  coreBluetooth 来开发,其低功耗,应用广泛。

2.开发模式: 1) 中心者模式:  以手机作为中心来连接外部设备

                   2) 管理者模式: 自己的手机作为外设,自己创建服务和特征,其他的设备连接我们的手机。

                   普遍的都是以  中心者模式  开发。


3.相关概念及类:

    

   CBPeripheral:简单理解为 外部设备,里面包含有蓝牙名字,连接状态,包含服务等等信息。

   CBService       :外部设备包含的服务(一个或多个),一个服务包含若干特征

   CBCharacteristic:特征,一般会有特征值,是与外界交互的最小单位

   UUID            可以理解为一个唯一标识,用来标记一个服务或一个特征    


4.开发流程,一般步骤:

   1)创建中心管理者

   2)搜索外设

   3)连接外设

   4)发现服务

   5)发现特征

   6)从外设读取数据(读取特征)

   7)给外设发送数据(写入特征值)   


5. 实例:

导入 BLE 框架  

#import <CoreBluetooth/CoreBluetooth.h>


1. 实例化中心管理者,并设置代理,发现外设,连接外设状态及连接外设成功与否等都是通过中心管理者回调获取结果
  

    self.centralManager = [[CBCentralManageralloc]initWithDelegate:selfqueue:niloptions:nil];


2. 开始扫描
    /*
     *  sevices 服务的数组,如果传入指定值的数组则只会扫描包含指定服务的外设,传 nil 则会搜索所有服务的外设
     */    

   [ self . centralManager scanForPeripheralsWithServices : <NSArray *services>   options : nil ];

3. 当扫描的外设结果的时候,就会调用 CBCentralManager的代理方法

// 找到设备时调用,每找到一个就调用一次

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI {

    // 将找到的 peripheral存入数组

    if (![self.discoveredPeripheralscontainsObject:peripheral]) {

        [self.discoveredPeripheralsaddObject:peripheral];

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值