iOS面试 - 蓝牙的基本使用

在 iOS 中,蓝牙是基于 4.0 标准的,设备间低功耗通信。其中 Peripheral 外设相当于 Socket 编程中的 Server 服务端,Central 中心相当于 Client 客户端。本地中心 -> 远程外设本地外设 -> 远程中心使用流程:建立中心角色 —> 扫描外设(discover)—> 发现外设后连接外(connect) —> 扫描外设...
摘要由CSDN通过智能技术生成

在 iOS 中,蓝牙是基于 4.0 标准的,设备间低功耗通信。

其中 Peripheral 外设相当于 Socket 编程中的 Server 服务端,Central 中心相当于 Client 客户端。

本地中心 -> 远程外设
本地外设 -> 远程中心

使用流程:
建立中心角色 —> 扫描外设(discover)—> 发现外设后连接外(connect) —> 扫描外设中的服务和特征(discover) —> 与外设做数据交互(explore and interact) —> 断开连接(disconnect)。

1. 建立中心角色

上面的 delegate 为 CBCentralManagerDelegate,后续蓝牙相关的回调都会在此。

queue 代表蓝牙在哪个队列里面操作,如果传入 nil 默认为主队列,值得注意的是后续的回调也是在传入的队列中调用的,所以如果传入的是非主线程的队列,在 delegate 中需要操作 UI 时需要手动切换到主线程。

CBCentralManager 对象创建后会回调到 centralManagerDidUpdateState 方法来检测蓝牙可用状态,这时我们可以提醒用户设备是否支持蓝牙,是否打开了蓝牙。

2. 扫描外设

如果 serviceUUIDS 为 nil 则会扫描周围所有的设外设,反之只会扫描 UUID 匹配的外设。

CBCentralManagerScanOptionAllowDuplicatesKey 默认为 false,此次扫描中发现过设备则跳过不回调,我们这

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值