美文网首页
IOS蓝牙开发心得

IOS蓝牙开发心得

作者: Johnny_Wu | 来源:发表于2018-05-24 14:11 被阅读0次

    这几年一直在做IOS端的智能穿戴的APP,使用蓝牙开发的频率也比较高,所以对蓝牙开发还是有一定的了解,写篇文章记录总结。

    理论知识,我就不详细说了。简单理解:我们手机是CBCentralManager,就是中心。我们的手环等是CBPeripheral,就是外设。

    手机APP连接外设需要的步骤:搜索外设—>>连接外设—->>查找外设的服务—->>查找外设的服务对应特征。以上都是成功,不包括错误失败。

    手机APP收发指令,都是通过 服务+特征 来进行处理。

    具体的做法,我们可以看我封装的一个类,拖到项目中就可以用。

    一、初始化

    封装的类名为:BleOperatorManager

    _bleOpt = [BleOperatorManager sharedInstance];

    _bleOpt.delegate = self;

    _bleOpt.realTimeUpdateDeviceListBlock = ^(NSArray *listArray, NSDictionary *rssiDic, NSDictionary *macDic) {

    //实时返回搜索到的外设,listArray存了所有的外设结构(CBPeripheral *),macDic保存了外设的mac地址

     };

     _bleOpt.gainMacAddress = ^NSString *(NSDictionary *advertisementData) {

    //解析mac地址,并返回给原类

                NSData *data = advertisementData[@"kCBAdvDataManufacturerData"];

                return @"FF:FF:FF:FF";

    };

    二、基本操作指令

    搜索:startScanDevice:(NSArray *)adverUUIDArray

    停止搜索:stopScanDevice

    连接外设:connectSelectPeripheral:(CBPeripheral *)peripheral

    断连:disconnectCurrentPeripheral:(BOOL)hasRecord

    三、收发操作

    前面说过,发送是需要 服务+特征 的,服务和特征,在连接蓝牙的时候,可以得到,当然也可以lightBlue查看。

    然后发送就是:sendDataToBand:(NSData *)data WithServiceUUID:(NSString *)serviceUUID WithCharacteristicUUID:(NSString *)characteristicUUID withWriteType:(CBCharacteristicWriteType)writeType

    如果发送是CBCharacteristicWriteWithResponse类型,那么发送完成后,就会调用

    peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

    {

    //发送后的代理

    }

    接收数据:外设主动操作,我们只是对应代理回调:

    peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

    {

    //收到的数据为:characteristic.value

    }

    四、后话

    还得有下面的配置:

    项目加入CoreBluetooth库

    plist文件加入:

    Required background modes:App communicates using CoreBluetooth

    蓝牙类:GitHub - wulang150/BleManager: 蓝牙模块

    相关文章

      网友评论

          本文标题:IOS蓝牙开发心得

          本文链接:https://www.haomeiwen.com/subject/huojjftx.html