LGBluetooth:简化程序中 CoreBluetooth 相关代码

lgbluetooth

LGBluetooth是一个基于block的,对 CoreBluetooth 进行了封装的轻量级库。

开始步骤

  1. 拖入工程中
  2. 导入LGBluetooth
  3. 开始使用

使用

我们这个例子里,使用的这个蓝牙周围设备有个“5ec0”服务,该服务有3个特征值

68747470733a2f2f7261772e6769746875622e636f6d2f6c30676733722f4c47426c7565746f6f74682f6d61737465722f53637265656e73686f74732f312e504e47

  • “cef9”特征值是可写的
  • “f045”特征值是可读的
  • “8fdb”特征值是可读的

运行完代码后我们可以看到结果:

68747470733a2f2f7261772e6769746875622e636f6d2f6c30676733722f4c47426c7565746f6f74682f6d61737465722f53637265656e73686f74732f352e504e47

这个例子中我搜索周围设备花了4秒钟,然后将第一个周围设备传入测试函数中。

测试函数中执行了连接周围设备,发现服务,找到“5ec0”服务的特征值。然后读取“f045”、“8fdb”特征值的值并且在“cef9”特征值中写入0xFF,然后断开该周围设备的连接

这是调试器的日志:

其他使用

你可以通过LGUtils类进行基本的读写操作:该方法不需要周围设备处于连接状态,该方法会自动进行连接。

读取示例

写入示例

使用LGBluetooth的原因

总所周知,CoreBluetooth用起来很复杂—其中的对象方法很凌乱。

例如 connectPeripheral:options: 方法在 CBCentralManager 类中,discoverCharacteristics:forService:、writeValue:forCharacteristic:type:、readValueForCharacteristic: 都需要通过周围设备进行调用。

这些都使得 CoreBluetooth 用起来相当麻烦。比如读取一个特征值,你需要在中心设备调用“connect”方法,等待Central delegate的回调结果,然后调用”discover services”,等待peripheral delegate的回调结果,然后是调用”discover characteristic”和”readValue”函数并分别等待回调结果。如果你的项目同时进行两个蓝牙连接呢,代码会非常复杂,可能会有很多bug

别担心,现在你不用管这些了—LGBluetooth使用块作为回调,现在你可以使用现代代码和分层调用。

使用CococPods安装

CocoaPods 是 Objective-C 的一个相关性管理器,自动化并简化了项目中安装第三方库的过程。

Podfile

许可证

LGBluetooth 遵循 MIT 开源许可证发布

开源地址:https://github.com/LGBluetooth/LGBluetooth

1 1 收藏

资源整理者简介:西西里的仔仔

简介还没来得及写 :) 个人主页 · 贡献了12个资源 · 13 ·   


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer