iOS coreBluetooth编程中需要注意的问题

本文详细介绍了iOS设备作为中心设备和远端设备在CoreBluetooth编程时的关键点。作为中心设备,要注意保持central Manager强引用,设置peripheral代理,遵循蓝牙连接的步骤并检查特征属性。作为远端设备,需考虑特征值更新、数据长度限制和订阅管理。同时,文中提到了订阅功能的使用,特征值的判断以及服务和特征的保存策略,强调了在适当时候停止扫描和取消订阅的重要性。
摘要由CSDN通过智能技术生成

一、iOS 设备作为中心设备(central device)时需要注意:

(1)一定要对central Manager保持强引用,也就是说central Manager需要是一个全局变量不能是局部变量,否则不能启动扫描。
(2)连接到peripheral之后,一定记得为peripheral设置代理,否则无法进行服务和特征的发现。
(3)有关CBCentralManagerDelegate协议
协议方法的意义都不难理解,但需要注意的是,蓝牙从开启、发现设备、连接设备、发现服务、发现特征到读写特征值、订阅特征着这六个步骤之间是有前后依赖关系的,每个步骤的执行都依赖前一个步骤的成功执行。
CBCentralManagerDelegate协议为以上6个步骤都定义了对应的回调方法,并且在回调方法中可以获取到当前步骤的执行结果。那么,就可以通过这个结果来决定是否继续进行下一个步骤。
比如每次调用CBCentralManager的初始化方法,都会回调代理方法-(void)centralManagerDidUpdateState:(CBCentralManager *)central。这个代理方法的调用意味着CBCentralManager对象初始化完毕,并且已经获取到当前设备的蓝牙功能状态,在这个回调方法中访问central.state就可以知道设备是否支持(已开启)蓝牙功能。只有当设备已开启蓝牙功能才能继续下一步——发现远端设备。
这种机制应该贯穿与整个蓝牙连接过程。
(4)确定远端设备是否支持某种功能
应该在对特征值进行读写或订阅操作之前,需要先知道这个特征是否支持和允许这些操作。判断特征支持和允许的操作可以通过特征的属性。特征的属性是个枚举值,可选的值有CBCharacteristicPropertyRead表示可读,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值