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

一、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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值