藍牙,日常你用的多嗎?視頻
上班路上戴着藍牙耳機聽音樂、看視頻開發
打開藍牙分享我的熱點給小夥伴們class
解鎖共享單車時,打開藍牙就能迅速解鎖service
......技術
BLE—藍牙低能耗技術,方便了咱們的生活,可是開發者在開發過程當中卻遇到了很多坑,尤爲對小白用戶來講坑真的太多了,都是安卓、iOS系統惹的禍。經驗
今天給你們分享一個解決BLE那些坑的經驗,但願能幫助更多人。項目
項目中用到BLE模塊時,要注意如下問題:分享
❶ 用示例代碼安卓系統掃描藍牙設備就沒法成功,而蘋果則沒問題。開發者
✓ 解決辦法:將serviceUUIDs: ['', '']改成serviceUUIDs: []便可。一次掃描不出來能夠多掃描幾回。di
❷ 安卓和蘋果的設備UUID不同,安卓爲xx:xx:xx:xx:xx:xx格式,蘋果爲GUID格式。
✓ 解決辦法:以你掃描獲取的UUID訪問設備就好了。
❸ 安桌和蘋果的服務UUID和服務特徵CharacteristicsUUID不同(服務UUID和服務特徵CharacteristicsUUID是父子關係)。
安卓爲GUID格式,蘋果爲短格式。二者掃描出的服務數也不同,蘋果只掃描出用戶能調用的,安卓會把系統級的也掃描出來,安卓通常第3個服務是用戶能調用的。
✓ 解決辦法:以你掃描獲取的獲取的服務UUID的服務特徵CharacteristicsUUID訪問就好了。
❹ 最重要的一點,也是爲何調用老不對的問題。
✓ 解決辦法:無論你是否知道設備UUID,服務UUID,藍牙是否打開。請必定要按步驟調用:掃描設備->鏈接設備->獲取全部服務UUID
->服務UUID對應的全部服務特徵CharacteristicsUUID。這些步驟走完了,才能調用服務UUID和對應的服務特徵CharacteristicsUUID。