當(dāng)你看到這個文章我想你已經(jīng)排除了電量和信號的問題。
在開發(fā)的過程中有時會遇到這樣的情況,藍(lán)牙連接沒有問題,然后測試似乎沒有問題,但是一會就斷開了(大約30s斷開一次吧)。
問題分析:1、首先來看一個參數(shù)設(shè)置:CBCharacteristicWriteType。在給硬件發(fā)送命令的方法里有一個type的設(shè)置,這個類型包含兩個參數(shù)CBCharacteristicWriteWithResponse和CBCharacteristicWriteWithoutResponse。CBCharacteristicWriteWithResponse要求發(fā)送數(shù)據(jù)有一個返回消息,但是CBCharacteristicWriteWithoutResponse不需要,兩個參數(shù)的區(qū)別有興趣的可以去查看文檔,不做贅述。
2、而現(xiàn)在底層的藍(lán)牙協(xié)議一般都會有一個response的返回,51822底層會自動發(fā)response,14580則需要手動添加一個response。如果參數(shù)設(shè)置為CBCharacteristicWriteWithResponse而藍(lán)牙沒有一個response,那么就會出現(xiàn)30s左右斷開一次的情況。至于CBCharacteristicWriteWithoutResponse這個參數(shù)我沒有測試過,因?yàn)槟J(rèn)都有response。有興趣的可以自己測試一下。