天天看點

Android 藍牙4.0(BLE)傳輸問題坑爹的地方:我個人的處理方案:

Android 藍牙BLE 4.0傳輸20byte問題

  • 坑爹的地方:
  • 我個人的處理方案:

坑爹的地方:

  • 每次最大傳輸20個byte,單次發送大于20個位元組會分包發送
  • 如果固定傳輸20個位元組的批量資料,偶爾也會出現分撥發送的情況,例如先到達5byte,後到達15byte
  • 傳輸間隔小于20ms時,分撥發送情況很容易發生,而且偶然還會出現更坑爹的情況,到達5byte後,下個完整的包到了,之後才到達分撥的15byte。

我個人的處理方案:

拼接起始位方法

假設我的接收的資料為:

55aa0b01010123010cf05570ad102768100f0010 1

sadfsagqwegdfvweasdfgf123sads 2

55aa0b01013qwwetz1012123z3010cf05570 3

55aa0b01013qwwetz1012123z301ad12310cf055 4

sadfsagqwegdfvweasdfgf123sads 5

我的起始位是55aa

因為BLE隻能發送20byte(40char),當發送的資料>20時,他就會自動分割成2串字元發送

是以我通過判斷目前起始位(55aa),若碰到下一個55aa則停止拼接字元串,

否則的話就會一直拼接字元串

最終資料就變成了這樣:

55aa0b01010123010cf05570ad102768100f0010sadfsagqwegdfvweasdfgf123sads

55aa0b01013qwwetz1012123z3010cf05570

55aa0b01013qwwetz1012123z301ad12310cf055sadfsagqwegdfvweasdfgf123sads

其他更多開發遇到問題

Android 藍牙4.0(BLE) Demo

有需要的話評論區留郵箱位址,我私發給你~