小米手环iOS开发实战(二):开发Demo让你的手环振动起来
上一节讲了CoreBluetooth的使用,理论知识很枯燥,那么现在先利用上一节讲的内容,做一个简易手环应用,实现连接/断开手环,查看手环UUID、查看电量信息,并让振动的功能。
本节知识默认大家掌握iOS的基础控件,掌握通过storyboard或代码搭建界面UI,能够利用Swift或Objective-C编写程序。文章会尽量详细讲解这些过程,当然如果你是大牛可以放心跳读。
章节目录
- 蓝牙连接所涉及到的类
- 小米手环Demo应用的开发
- 一些功能优化
蓝牙连接所涉及到的类
上一节讲了怎么用CoreBluetooth,本节讲一下所涉及到的类,及常用的成员函数和成员变量,其他方法请见苹果开发文档。
CBCentralManager
此类为中心设备类,用于控制作为中心设备时的行为
state
:获取当前中心设备状态isScanning
:当前中心设备是否在扫描外围设备stopScan()
:停止扫描外围设备scanForPeripherals(...)
:扫描外围设备(请确保蓝牙开启)connect(...)
:连接外围设备(需要先扫描到外围设备)cancelPeripheralConnection(...)
:断开外围设备
CBPeripheral
此类为外围设备类,用于对外围设备进行管理
name
:获取外围设备的名称rssi
:获取当前外围设备的信号强度state
:获取外围设备的状态(disconnected/connecting/connected)- ★
services
:获取外围设备所提供的服务(需要先扫描到服务) discoverServices(...)
:扫描设备所提供的服务discoverCharacteristics(...)
:扫描特征值(需要先获取服务)readValue(...)
:读取特征值所对应的值(需要先获取到特征值,同时要注意此方法不反回值,要用协议的didUpdateValueFor characteristic
方法处理)
是不是已经懵了?在此做一个图大致描述一下流程,其实这些方法的调用还是很有规律的。
CBCharacteristic
外围设备服务的特征值
- ★
Value
:获取特征值对应的值
小米手环Demo应用的开发
本Demo是对上一节所讲CoreBluetooth的操作复习,每个方法的实现已经有所解释,故在此不再赘述。如果有疑问,欢迎在评论区提问及讨论。
该Demo所要实现的功能:练习连接设备、断开设备、读取手环信息、让手环振动。具体涉及到的知识点为连接和断开设备、获取设备服务和特征值、获取特征值对应的信息以及对其写入。
- 界面搭建
方便起见,该项目直接采用storyboard搭建,如果不会可以看项目Demo
@IBOutlet weak var scanButton: UIButton!
@IBOutlet weak var stopButton: UIButton!
@IBOutlet weak var vibrateButton: UIButton!
@IBOutlet