iOS开发 - 蓝牙学习的总结

简介: iOS开发 - 蓝牙学习的总结

前言:


蓝牙我们知道在外设方面用的比较多,况且目前在医疗运动等方便使用也比较广泛,博主个人对于外设这一块其实挺看重的,未来必定是可穿戴设备的天下,在达不到完全把功能集成到穿戴设备的技术和降低成本的条件下,外设是一个很好的选择,蓝牙无疑起到决定性的作用。


最近在看蓝牙,关于蓝牙,也许你很了解这个名词,但是你并不知道它的原理,先推荐几篇大神写的博客,初步了解下:

http://www.cocoachina.com/ios/20150915/13454.html

http://www.cocoachina.com/ios/20150917/13456.html


里面也有原作者的代码下载,整理来说写的很详细,基本功能都实现的很好,我们所需要做的就是根据自己的需求简单修改代码就好。


蓝牙有两种情况:中心设备(central)和外设(peripheral)


从其字面理解,中心设备就是用来接收并处理外设发送数据的端,外设自然就是发射消息端,这是在相对层面来说,中心也可以向外设发送数据,不过一般都是发送指令来控制外设,这一点理解就好。


在开发蓝牙之前首先你要了解蓝牙开发的一点限制,如果仅最低支持蓝牙4.0,那么OK,但是要支持2.0,如果你是安卓方面或者iOS越狱手机,无关紧要,但要是想上线到App Store的话,需要硬件厂商有MFI的授权(make for ipad ,iphone, itouch 专们为苹果设备制作的设备),这个对生产厂商有一定要求,需要有一定规模,且为国际企业提供硬件,要求比较高,所以一般都是放弃的。博主比较推崇的是蓝牙4.0 BLE - 开发使用CoreBluetooth 框架,因低功耗而受推崇。


中心设备(central)


将我们的手机作为中心设备,来接收外设发送的数据,如手环。这种情况是最简单也最好处理的,不需要设置UUID和一些蓝牙的参数。需要处理的就是扫描设备->发现设备->连接设备->接收广播->处理服务和特征->展示服务和特征。


在此可能还会有设备断开重连,自动连接,绑定设备的一些操作:


断开重连:连接后可获取到设备的UUID并保存,在断开代理中检测到断开后,查找搜索到的设备的UUID是否和保存的UUID一致,若一致则连接;


自动连接:第一次连接保留了外接设备的UUID,再次打开蓝牙一旦检测到外接设备的UUID和保存的一致则自动连接;


绑定设备:设备都会有唯一Mac地址,一般很少会写进外接设备中,绑定设备在外接设备中也不多见,我们所见到的也不过是断开重连和自动连接的结合使用,好像绑定了一样,这两个功能足以满足用户需要,如果需要绑定则需要外接设备提供Mac地址,因为设备UUID并不是唯一的,这种情况发生在我们使用另外一台设备来连接外接设备,只有在同一台设备上,外设的UUID是不变的。


外设(peripheral)


外设就像是一个广播,工作时无时无刻不在向外广播着,广播的内容我们叫做服务,每一个服务可以有多个特征,在代理中,设备建立连接后可以拿到服务和特征的值。


总结


以上是手机作为中心设备来扫描外设的原理和思路,代码部分请参考上面博客给出的,博主这里提供个Demo,非博主原创Demo,也算给作者正名了,下载地址,如果需要手机来做外设,请参考Demo中给出的实例,不再说明。

目录
相关文章
|
27天前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
83 3
|
3月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
122 2
|
3月前
|
存储 数据建模 数据库
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
38 0
|
3月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
89 2
|
3月前
|
API 开发工具 iOS开发
iOS 开发高效率工具包:10 大必备工具
iOS 开发高效率工具包:10 大必备工具
42 1
|
3月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
52 1
|
1天前
|
API 定位技术 iOS开发
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
【4月更文挑战第18天】**Cocoa Touch** 是iOS和Mac OS X应用的核心框架,包含面向对象库、运行时系统和触摸优化工具。它提供Mac验证的开发模式,强调触控接口和性能,涵盖3D图形、音频、网络及设备访问API,如相机和GPS。是构建高效iOS应用的基础,对开发者至关重要。
8 0
|
16天前
|
开发工具 Swift iOS开发
利用SwiftUI构建动态用户界面:iOS开发新范式
【4月更文挑战第3天】 随着苹果不断推进其软件开发工具的边界,SwiftUI作为一种新兴的编程框架,已经逐渐成为iOS开发者的新宠。不同于传统的UIKit,SwiftUI通过声明式语法和强大的功能组合,为创建动态且响应式的用户界面提供了一种更加简洁高效的方式。本文将深入探讨如何利用SwiftUI技术构建具有高度自定义能力和响应性的用户界面,并展示其在现代iOS应用开发中的优势和潜力。
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
181 2
|
3月前
|
数据可视化 iOS开发
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
40 4