安卓蓝牙开发的一些经验和教训

    目前有很多人开始进行低功耗蓝牙BLE进行开发,BLE主要应用于可穿戴设备,这个可以查标准协议,就不多说了。
    还有一种情况是用BLE实现类似传统蓝牙SPP功能。其实,我个人是不建议用这种方法的,毕竟BLE只是适合于小数据、低频度读取,这样才能做到低功耗。BLE实现SPP功能,还有一个重要原因,是苹果支持SPP需要授权,而BLE不需要授权。
    苹果iPhone4s和Android 4.3 之后支持BLE。
    使用BLE,一般是从google提供的例子开始,这个例子和传统蓝牙SPP的例子不同,不能两个android手机之间互相发消息。是android手机作为central模式(当然android也只支持这种模式),读取心跳检测器外设。
    BLE类似SPPS功能开发中,一般而言,蓝牙模块会提供一个带读写属性的Characteristic用于发送、一个带Notify属性的Characteristic 用于接收。
     需要注意的是,如果要发送数据,是写Characteristic ,要在回调函数onCharacteristicWrite中等待写的结果,才能继续写,否则会写失败,所以需要做一个FIFO形式的写缓存队列才能实现可靠的发送数据。
    接收数据,在回调函数onCharacteristicChanged中读取可以,需要注意的是,在此函数中,不要用Android发广播或者Log函数,在实际测试中发现,会导致丢包,也就是说google例子中是有问题的。我猜测用轻量级的handler更好,还没详细测试,有测试结果再告诉大家,呵呵。
    在传统蓝牙测试中,有一次发现有时候BluetootchChat 例子会连接失败,把手机Wifi关掉,问题解决。看来,在蓝牙信号弱的时候,wifi影响还比较大。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值