IOS蓝牙4.0(BLE)开发一基本概念

前言:项目中需要蓝牙开发,跌跌撞撞总算开发完成,记录一下。

一、IOS中关于蓝牙的框架有四个:

(1)GameKit.framework 多用于游戏开发,仅限于ios设备之间的连接。
(2)MultipeerConnectivity.framework 这个就是ios设备之间互相传文件用的。
(3)ExternalAccessory.framework 这个框架可以用于和第三方蓝牙进行交互,但是必须是MFI(make for iphone,iPad,ipod。。。等等)设备,但是这种设备需要经过苹果的认证,而且比较困难,所以用的相当少。
(4)CoreBluetooth.framework 这就是我们的主角了,主要用于和第三方蓝牙的交互,这个不需要苹果的认证,但是必须是蓝牙4.0以上的设备(现在基本都是了),蓝牙4.0也叫BLE(Bluetooth Low Energy)所以一般都称之为BlE开发,从iPhone4s及其以后的设备都是支持BLE的。
       所以说IOS的BLE开发其实就是CoreBluetooth.framework这个框架的使用,一般情况下现在所说的IOS蓝牙开发也都是BLE开发。我们现在所做的智能家居,智能手环,类似的这些东西基本都是使用的这种方式与iPhone连接的。

二、CoreBlueTooth

1.简介:

  • 可用于第三方蓝牙设备交互,设备必须支持蓝牙4.0
  • iPhone的设备必须是4S或者更新
  • iPad设备必须是iPad mini或者更新
  • iOS的系统必须是iOS 6或者更新
  • 蓝牙4.0以低功耗著称,所以一般被称为BLE(bluetooth low energy)
  • 使用模拟器调试
    • Xcode 4.6
    • iOS 6.1
  • 应用场景
    • 运动手环
    • 智能家居 
    • 拉卡拉蓝牙刷卡器

核心概念

  • CBCentralManager:中心设备(用来连接到外部设备的管家)
  • CBPeripheralManager:外部设备(第三方的蓝牙4.0设备)


比如手机app作为中心设备去发现和操作其它蓝牙设备,就是左边这种场景。反之手机、智能手环等蓝牙设备作为外设就是右边那种场景。

2.当手机作为中心设备去连接第三方蓝牙设备的时候,首先需要了解下面几个概念

        服务:每一个外部设备都会拥有若干个服务,比如说你的智能手环可能会拥有一个管理你心率的服务,还有一个管理你跑步情况的服务。这些服务是你的硬件工程师设定的,作为我们在开发的时候只需要知道有哪些服务就可以了,每一个服务都会有一个唯一的UUID,就是一个字符串,用于辨别区分是哪个服务(外部设备也会有其对应的一个UUID),如果你连接到这个设备的话,你是可以搜索到这些服务的。


       特征:每一个服务里边都会有若干个特征,我们就是通过这些特征值来与设备进行交互的,还拿手环的例子来说,比如在它的管理你跑步情况的服务中可能有两个特征值,一个特征是读取手环内你跑步的数据,一个特征是用于你的APP发送数据给这个服务,进行一些设置什么的,同样每个服务中的特征也是由你的硬件工程师设置好的,你只需要用就好了,当然这些特征值也会有其对应的一个唯一的UUID。


      特征的属性:这些个特征的属性也是不尽相同有的是用来读数据的,有的是用来订阅通知的,有的是用来发送数据的,这些属性同样也都是设定好的,我们只需要知道哪一个特征是什么属性就好了。这些属性种类有一个枚举:

typedef NS_OPTIONS(NSUInteger, CBCharacteristicProperties) { CBCharacteristicPropertyBroadcast = 0x01,

CBCharacteristicPropertyRead = 0x02,

CBCharacteristicPropertyWriteWithoutResponse = 0x04,

CBCharacteristicPropertyWrite = 0x08,

CBCharacteristicPropertyNotify = 0x10,

CBCharacteristicPropertyIndicate = 0x20,

CBCharacteristicPropertyAuthenticatedSignedWrites = 0x40,

CBCharacteristicPropertyExtendedProperties = 0x80,

CBCharacteristicPropertyNotifyEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0) = 0x100,

CBCharacteristicPropertyIndicateEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0) = 0x200 };

外设、服务、特征间的关系





蓝牙中心模式流程


1. 建立中心角色


2. 扫描外设(discover)


3. 连接外设(connect)


4. 扫描外设中的服务和特征(discover)


    - 4.1 获取外设的services


    - 4.2 获取外设的Characteristics,获取Characteristics的值,获取Characteristics的Descriptor和Descriptor的值


5. 与外设做数据交互(explore and interact)


6. 订阅Characteristic的通知


7. 断开连接(disconnect)


蓝牙外设模式流程


1. 启动一个Peripheral管理对象


2. 本地Peripheral设置服务,特性,描述,权限等等


3. Peripheral发送广告


4. 设置处理订阅、取消订阅、读characteristic、写characteristic的委托方法



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蓝牙4.0BLE开发完全手册——物联网开发技术实战》是一本专门介绍蓝牙4.0低功耗(Bluetooth Low Energy, BLE)开发技术并应用于物联网的实战指南。 该书从基础概念出发,分析了BLE技术的特点、优势和应用领域。首先介绍了蓝牙技术的发展历程,然后深入研究了BLE的基本原理和通信协议,包括物理层和协议栈的组成、BLE传输数据的方式以及BLE设备之间的连接和广播等内容。同时,还对BLE的安全性和功耗进行了详细的讲解。 随后,本书重点聚焦于BLE开发的实战应用。作者通过实例演示了如何使用iOS和Android平台上的开发工具来搭建一个BLE应用程序,包括手机与BLE设备之间的连接与通信、UUID的使用、服务和特征的定义以及数据的读写等操作。此外,还介绍了如何在物联网场景中使用BLE技术,如智能家居、智能健康等方面的应用。 该书以简明易懂的方式呈现了BLE技术的相关知识,并结合实际案例进行讲解,使读者可以快速上手并实践于物联网开发中。此外,书中还包括了常见问题和解决方案,以帮助读者解决开发过程中可能遇到的困难与挑战。 综上所述,《蓝牙4.0BLE开发完全手册——物联网开发技术实战》是一本全面介绍BLE开发技术的实用指南,是物联网开发者不可或缺的参考工具。无论是对于初学者还是已有一定经验的开发者来说,都能够从中获得宝贵的知识和实战经验,提升物联网开发的技能水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值