android ble

GATT
GATT 连接是独占的。也就是一个 BLE 外设同时只能被一个中心设备连接。一旦外设被连接,它就会马上停止广播,这样它就对其他设备不可见了。当设备断开,它又开始广播。中心设备和外设需要双向通信的话,唯一的方式就是建立 GATT 连接。

整体流程

  • 扫描设备
  • 连接设备
  • 蓝牙通信
    • 发送notify
    • 收到数据,放入queue中(其他线程对queue中数据进行解析)
    • write写数据(每次最多20个字节,过了就会自动分包)
  • 断开连接
  • 释放资源

indicate和notify的区别
indicate是一定会收到数据,notify有可能会丢失数据。indicate底层封装了应答机制,如果没有收到中央设备的回应,会再次发送直至成功;而notify不会有central收到数据的回应,可能无法保证数据到达的准确性,优势是速度快。

Android BLE 蓝牙开发入门
Android BLE开发详解和FastBle源码解析

注意事项

  • 判断当前Android设备是否支持BLE。Android 4.3以后系统中加入了蓝牙BLE的功能
  • android 4.3 支持ble,并只支持作为central设备
  • android 5.0 支持作为peripheral设备
  • 系统6.0后需要位置权限(动态申请权限),否则无法使用
  • 频繁扫描、停止扫描会出现问题(没有找到合适的办法,只能考虑app上交互控制,有个链接说需要硬件优化)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值