美文网首页
Beartooth:kotlin实现的classic Bluet

Beartooth:kotlin实现的classic Bluet

作者: 风中的理想乡 | 来源:发表于2020-05-13 17:29 被阅读0次

项目地址

之前手里面有一个蓝牙项目,有连接多种蓝牙硬件设备和同时连接的需求,参考了下市面上的开源框架都没有特别好的覆盖项目里的问题(好多都是直接抄官方的demo),那就只能自己造轮子了。

PS:这个项目API和实现参考了BluetoothHelper这个开源项目。由于完全用kotlin重写并且有大量API和实现发生变动(详见下文),就单独造了个轮子。Thanks♪(・ω・)ノ

解决的痛点:

1.多设备同时连接的场景和跨UI使用蓝牙连接的场景

2.需要支持发送消息后等待(指定的)消息响应能力

3.支持自定义数据模型解析:大多数业务场景并不是操作字符串,或者直接操作字节流有点太麻烦了。举个例子:你可以抽象出命令实体来操作返回值,参考我们的网络接口数据模型

4.支持一些实战遇到的问题:延迟发送消息、消息队列、“粘包”处理

快速食用:

// 根据地址获取该设备的任务
val task = DefaultTask.obtainTask("66:66:66:66:66:66")
// or 标准获取任务的方式
val task = Beartooth.obtainTask("66:66:66:66:66:66", DefaultTask::class.java)
//注册回调(可省略
task.callback = this
// 发送字符串消息
task.sendMessage("Hello Beartooth!")
// 发送byte数组
task.sendMessage(byteArrayOf(0x1,0x2,0x3,0x4,0x5))
// 延迟(100ms)发送消息
task.sendMessage(SimpleMessage("Hello Beartooth!") + 100L)

其他的API可以参考项目中的readme,写的还比较详细

一些未实现的想法:

  • 搜索附近设备相关API
  • accept模式API
  • 线程休眠阻塞时间性能优化
  • 并发情况支持
  • 协程API支持

相关文章

网友评论

      本文标题:Beartooth:kotlin实现的classic Bluet

      本文链接:https://www.haomeiwen.com/subject/tsznnhtx.html