iOS BLE4.0相关知识

2020-02-10  本文已影响0人  小豆豆苗

一、前提
我们在了解蓝牙开发之前,需要了解一个概念,物联网(Internet of things。顾名思义,物联网就是实物之间相连的互联网。
我们能想到的设备包括:蓝牙设备和WI-FI设备。
物联网的应用领域:智能仓储、智能物流、智能家居、智能医疗和智能农业等。

二、蓝牙(Bluetooth):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4-2.485GHz的ISM波段的UHF无线电波)。蓝牙技术最初由电信巨头爱立信公司于1994年创制,当时是作为RS232数据线的替代方法。蓝牙可连接多个设备,克服了数据同步的难题。
如今蓝牙由蓝牙技术联盟(Bluetooth Special Interest Group,简称SIG)管理。SIG在全球拥有超过25,000家成员公司,它们分布在电信、计算机、网络和消费电子等多重领域。IEEE将蓝牙技术列为IEEE 802.15.1,但如今已不再维持该标准。SIG负责监督蓝牙规范的开发,管理认证项目,并维护商标权益。制造商的设备必须符合SIG的标准才能以“蓝牙设备”的名义进入市场。蓝牙技术拥有一套专利网络,可发放给符合标准的设备。
蓝牙4.0是2012年的最新蓝牙版本,较3.0版本更省电、成本低、3毫秒低延迟、超长有效连接距离,AES-128加密等。

三、蓝牙的通讯流程
服务端(外设):是提供数据的设备,向外广播信息。比如小米手环,蓝牙耳机……
客户端(中心):扫描并监听外设中的广播信息。如:手机,平板……
客户端搜到对应的外设后,可以连接外设并扫描外设的具体服务和通讯通道,之后可以通过通讯协议进行数据的收发。
在CoreBluetooth开发过程中,我们先要了解几个相关的类,一下是中心开发过程中使用到的类:

四、我们在开发中需要注意的事项:

五、开发流程
我们所说的开发主要是针对中心设备的开发,也就是说通过手机来扫描可连接的外设,跟外设建立连接,然后发送指令来控制外设或者说获取外设的指令显示到手机上。
1.建立中心设备
2.中心设备开始扫描外设(Discover Peripheral)
--2.1 扫描到外围设备之后,自动调用中心设备的代理方法
--2.2 如果设备过多,可以将扫描到的外围设备添加到数组
3.连接外设(Connect Peripheral)
4.扫描外设中的服务和特征(Discover Services And Characteristics)
-- 4.1 获取外设的services
--4.2 获取外设的Characteristics,获取characteristics的值
--4.3 获取Characteristics的Descriptor和Descriptor的值
5.利用特征与外设做数据交互
6.订阅Characteristic的通知
7.断开连接(Disconnect)

六、开发过程中的安全考量
因为蓝牙的操作可能会涉及到设备的安全问题,所以在安全方面需要考量。
1.在连接到蓝牙设备以后,先与蓝牙设备及服务端做一次三方的安全验证,使用一些加密算法,保证当前是自己的app对自己的设备发送的蓝牙指令。
2.在所有的蓝牙操作指令中增加时间戳安全判断,可以跟硬件端商量好具体的安全超时时常,对于连接超时的不做响应。
3.因为受蓝牙信号强度的限制,蓝牙操作的灵敏度和响应时间会存在一定问题,所以要求精简对蓝牙设备的型号跟强度进行定制。
4.在进行蓝牙设备搜索链接时,iOS没有自带的超时设置,如果不手动停止的话,会不断进行设备搜索,影响设备性能。所以建议设置一个超时时长,如果超时则停止搜索并提示用户重新搜索。

至于具体代码过程此处就不详情写了,网上的教程有很多

上一篇 下一篇

猜你喜欢

热点阅读