原生蓝牙连接设备流程

  1. 导入 CoreBluetooth 模块
    #import <CoreBluetooth/CoreBluetooth.h>
  2. 初始化蓝牙管理中心,蓝牙管理中心为单例
    1. // queue 传 nil,默认为在主线程创建
    2. CBCentralManager *centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:nil];

iOS 蓝牙接收的数据处理

  1. 在确切知道返回数据的长度下,可以使用固定长度的Byte数组接收

    1. NSData *data = characteristics.value;
    2. Byte byteArray[20] = {0};
    3. [data getBytes:&byteArray length:sizeof(byteArray)];
    4. for (int i = 0; i < 20; i++) {
    5. NSLog(@"%02x", byteArray[i]);
    6. }
  2. 在不确定返回的byte长度情况下使用(建议) ``` NSData data = characteristics.value; Byte resultByte = (Byte *)[data bytes];

// [data length] 就是byte数组的长度 for (int i = 0; i < data.length; i++) { NSLog(@”%02x”, resultByte[i]); } ```

蓝牙调试

  1. APP Store 上有很多免费的蓝牙连接测试工具: LightBlue , nRF Connect, 蓝牙助手
  2. 使用 LightBlue 可以扫描到周围的蓝牙设备并列出信号强度

参考

零基础掌握 iOS 蓝牙开发
iOS开发之玩转蓝牙CoreBluetooth
iOS蓝牙通信数据处理,位运算,数据大小端转换
iOS蓝牙开发笔记(LightBlue调试、大小端转换、进制转换)
蓝牙通信示例