美文网首页
iOS 蓝牙框架CoreBluetooth

iOS 蓝牙框架CoreBluetooth

作者: 10栋208 | 来源:发表于2017-07-12 08:59 被阅读0次

一、什么是蓝牙?

不同于有线传输,蓝牙® 设备使用无线电波连接电话或计算机。耳机或手表等蓝牙产品包含微型计算机芯片,上面搭载蓝牙无线电和软件以便于连接。当两个蓝牙设备想要互相对话时,它们需要配对。蓝牙设备之间的通信在短距离点对点网络(亦称为微微网)中发生。微微网是设备使用蓝牙技术连接在一起的网络。建立网络后,一台设备作为主设备,其他是从属设备。
蓝牙通过发展,目前最大的特点是:低功耗,高速度。

二、iOS 蓝牙框架

首先蓝牙通信协议(我也不知道具体协议名字,或许有多层、多个协议)规定了如下图所示的服务结构。
一个蓝牙设备可以有多个profile,一个profile里可以有多个服务, 每个服务包含多个特征 还可以包含子服务
一个特征有一个value,还有一些对特征进行描述的字段。

image.png

iOS有好几个框架里有蓝牙部分的支持,这里只讨论CoreBluetooth。
分别对应的类是CBService,CBMutableService ,CBCharacteristic,CBMutableCharacteristic 。没看到Profile的对应。
主设备用CBCentralManager来控制,从设备用CBPeripheralManager控制

用法:

我们假设一种最简单的列子,手机要读取温度传感器的数据。
那么用手机A模拟温度传感器 ,手机B作为展示和控制。
流程为:
手机A
实例化一个 CBPeripheralManager peripheralManager。
实例化一个 CBMutableService service (因为我们要设置服务的特征,所以要用Mutable)
实例化表示当前温度的一个特征 CBMutableCharacteristic tempCharacteristic
将tempCharacteristic 赋予服务 service.characteristics = [tempCharacteristic]
然后用peripheralManager 添加服务 并发出广播。
peripheralManager.add(service)
peripheralManager.startAdvertising()

手机B
实例化CBCentralManager centralManager
扫描周围的广播 centralManager.scan
扫描到广播便能得到代表手机A的CBPeripheral peripheralA (peripheral 外设的意思)
通过centralManager调用connect方法连接 peripheralA
连接成功后通过 peripheralA.discoverServices 去获得手机A刚刚发出的那个服务 service
然后通过service获取它的特征,获取特征的value等。

手机A可以通过peripheralManager 定时update tempCharacteristic的value
只要value一更新,手机B这边就会收到value被更新的回调。
就实现了 手机读取温度传感器的温度。

代码:https://github.com/tigerLBJ100910/Bluetooth-Demo
需要在xcode9上运行

相关文章

  • iOS 蓝牙开发笔记

    iOS蓝牙框架介绍 (CoreBluetooth介绍) CoreBluetooth中涉及以下对象类: CBCent...

  • iOS 蓝牙交互基础知识

    要在iOS中集成蓝牙功能,需要使用的是CoreBluetooth框架,通过CoreBluetooth框架提供的AP...

  • iOS CoreBluetooth

    CoreBluetooth 在iOS和Mac应用中,CoreBluetooth框架用来与BLE(低功耗蓝牙)设备通...

  • iOS蓝牙编程CoreBluetooth

    iOS的蓝牙框架是支持蓝牙4.0协议的。理解iOS CoreBluetooth两个很重要的概念,Central 和...

  • iOS蓝牙4.0,收发数据设计

    iOS蓝牙开发,现在常规使用的是CoreBlueTooth.framework,即蓝牙4.0开发框架。 1.CBC...

  • iOS 蓝牙特技

    常用iOS 蓝牙 系统框架:CoreBlueTooth 简介: 可用于第三方蓝牙设备交互,设备必须支持蓝牙4.0 ...

  • 蓝牙开发

    蓝牙开发使用CoreBluetooth框架实现两个iOS设备、iOS设备与非iOS蓝牙设备的交互。要注意的一点是目...

  • iOS 关于蓝牙开发

    蓝牙库: 当前iOS中的蓝牙开发使用的都是系统自带的蓝牙库

  • iOS蓝牙开发

    iOS蓝牙开发是围绕着CoreBluetooth框架实现的 1.iOS开发的关键词 中心设备:用于扫描周围的蓝牙硬...

  • iOS 蓝牙框架CoreBluetooth

    一、什么是蓝牙? 不同于有线传输,蓝牙® 设备使用无线电波连接电话或计算机。耳机或手表等蓝牙产品包含微型计算机芯片...

网友评论

      本文标题:iOS 蓝牙框架CoreBluetooth

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