1.蓝牙控制
主要概念
服务(services):蓝牙外设对外广播的必定会有一个服务,可能也有多个,服务下面包含着一些特征,服务可以理解成一个模块的窗口;
特征(characteristic):存在于服务下面的,一个服务下面也可以存在多个特征,特征可以理解成具体实现功能的窗口,一般特征都会有value,也就是特征值,特征是与外界交互的最小单位;
UUID:可以理解成蓝牙上的唯一标识符(硬件上肯定不是这个意思,但是这样理解便于我们开发),为了区分不同的服务和特征,或者给服务和特征取名字,我们就用UUID来代表服务和特征。
蓝牙设备状态
待机状态(standby):设备没有传输和发送数据,并且没有连接到任何设
广播状态(Advertiser):周期性广播状态
扫描状态(Scanner):主动寻找正在广播的设备
发起链接状态(Initiator):主动向扫描设备发起连接。
主设备(Master):作为主设备连接到其他设备。
从设备(Slave):作为从设备连接到其他设备。
蓝牙设备的五种工作状态
准备(standby)
广播(advertising)
监听扫描(Scanning
发起连接(Initiating)
已连接(Connected)
蓝牙中心模式流程
蓝牙连接可以大致分为以下几个步骤
1.建立一个Central Manager实例进行蓝牙管理
2.搜索外围设备
3.连接外围设备
4.获得外围设备的服务
5.获得服务的特征
6.从外围设备读数据
7.给外围设备发送数据
建立中心角色
扫描外设(discover)
连接外设(connect)
-
扫描外设中的服务和特征(discover)
4.1 获取外设的services
4.2 获取外设的Characteristics,获取Characteristics的值,获取Characteristics的Descriptor和Descriptor的值
与外设做数据交互(explore and interact)
订阅Characteristic的通知
断开连接(disconnect)
其他控制方式以后再尝试,WIFI控制、红外控制、联网控制