当你看到这个文章我想你已经排除了电量和信号的问题。
在开发的过程中有时会遇到这样的情况,蓝牙连接没有问题,然后测试似乎没有问题,但是一会就断开了(大约30s断开一次吧)。
问题分析:1、首先来看一个参数设置:CBCharacteristicWriteType。在给硬件发送命令的方法里有一个type的设置,这个类型包含两个参数CBCharacteristicWriteWithResponse和CBCharacteristicWriteWithoutResponse。CBCharacteristicWriteWithResponse要求发送数据有一个返回消息,但是CBCharacteristicWriteWithoutResponse不需要,两个参数的区别有兴趣的可以去查看文档,不做赘述。
2、而现在底层的蓝牙协议一般都会有一个response的返回,51822底层会自动发response,14580则需要手动添加一个response。如果参数设置为CBCharacteristicWriteWithResponse而蓝牙没有一个response,那么就会出现30s左右断开一次的情况。至于CBCharacteristicWriteWithoutResponse这个参数我没有测试过,因为默认都有response。有兴趣的可以自己测试一下。