|
目錄
藍牙 4.0 支持單模和雙模兩種部署方式,其中單模即是我們說的 BLE,而雙模指的是 Classic Bluetooth + BLE 。 經(jīng)典藍牙 參考官方文檔(https://developer./guide/topics/connectivity/bluetooth.html?hl=zh-cn#TheBasics),因為有中文文檔,所以只要看這一篇文檔就可以應付一般的開發(fā)了。 最重要的是這一次項目里的硬件貌似不能支持經(jīng)典藍牙,所以并沒有實踐的機會。 BLE 同樣,有條件一定要去看官方文檔,然而這一次并沒有中文版,或許可以找一些國內(nèi)大佬們翻譯的版本。
UUID:每個服務和特征都會有唯一的 UUID ,由硬件決定。
其實
關于 第二個參數(shù), 首先是 所以當 執(zhí)行了
如果成功寫入數(shù)據(jù),系統(tǒng)回調(diào)
上面的代碼可以成功往硬件發(fā)送數(shù)據(jù),但是不能接受硬件返回的數(shù)據(jù)。
實際上向硬件寫入數(shù)據(jù)這一段代碼有時候是可以省略的,只需要打開 Android 段的開關即可接收到返回的數(shù)據(jù),可能是和硬件有關。 總結 如果寫過經(jīng)典藍牙的就知道,如果說兩者的搜索操作還差不多的話,連接操作和寫入操作就是完全不同的東西了。 經(jīng)典藍牙可以獲取到一個類似 TCP 中 Socket 的對象,然后獲取 而 BLE 中需要通過不同的 UUID 獲取對應的服務、特征才可以寫入數(shù)據(jù)。 以上就是 BLE 最簡單的實現(xiàn),進一步的封裝等就去看上面介紹的 RxBLE 吧。 還有就是用 Kotlin 寫的 MainActivity 部分(主要代碼):
BLE 相關的代碼是寫在了 Service 中,通過綁定時返回的 mBinder 來調(diào)用 Service 中的方法。 關鍵詞:code小生 ![]() ![]() ![]() |
|
|
來自: codingSmart > 《待分類》