android ble藍(lán)牙開(kāi)發(fā)(一)

目前,對(duì)于傳說(shuō)中的智能家居來(lái)說(shuō),了解ble藍(lán)牙知識(shí)必不可少;低功耗藍(lán)牙從4.3版本開(kāi)始,可以使用它來(lái)發(fā)現(xiàn)設(shè)備(ScanBlutTooth),查詢服務(wù)和讀寫(xiě)特寫(xiě)。藍(lán)牙底層是基于GATT協(xié)議,我們要操作藍(lán)牙讀取是要了解Api中BluetoothGATT類,里面包含Service(服務(wù)),Characteristic(特征值),Descriptor(屬性);在連接后想做讀寫(xiě)的操作,需要特定的Service_UUID,uuid是什么呢,是唯一統(tǒng)一標(biāo)識(shí)符,每一個(gè)標(biāo)識(shí)符是128位,例如這樣的格式

uuid格式

怎么理解深層次藍(lán)牙?藍(lán)牙底部由 Service,Characteristic,Descriptor組成,他們可以由不同的uuid表示,一個(gè)Service由多個(gè)Characteristic,而Characteristic有多個(gè)Descriptor組成,從而構(gòu)成一個(gè)服務(wù),假如這個(gè)服務(wù),這個(gè)Service表是藍(lán)牙燈的信息,那么Characteristic可以是色溫,色差,那么Descriptor就是里面一個(gè)屬性值,可以是代表argb值;連接藍(lán)牙有幾個(gè)步驟:

1.藍(lán)牙權(quán)限

在AndroidManifest.xml文件中添加權(quán)限

2.scanBlueTooth 掃描藍(lán)牙設(shè)備

一般在Activity、Fragment使用藍(lán)牙場(chǎng)景中,將附近的藍(lán)牙在掃描過(guò)后添加到BlueTooth列表;

(1).獲取藍(lán)牙服務(wù),得到blueAdaper,再在開(kāi)始掃描:

檢測(cè)藍(lán)牙是否開(kāi)啟

(2).開(kāi)始掃描,開(kāi)啟掃描,這里的TimeOut是默認(rèn)掃描15s,因?yàn)樗{(lán)牙掃描是很耗費(fèi)電量以及性能,恩,電量是一定的,但性能我不知道,也許是我瞎編的;15s后結(jié)束掃描動(dòng)作;

開(kāi)始掃描藍(lán)牙設(shè)備

(3).startScan,掃描是要通過(guò)BluetoothAdapter開(kāi)啟掃描過(guò)程

startScan()具體實(shí)現(xiàn)

(4).將掃描到的藍(lán)牙設(shè)備添加到列表當(dāng)中,以供連接選擇;

leScanCallBack回調(diào);

3.連接藍(lán)牙

(1),通過(guò)Mac地址,在使用BluetoothAdapter獲取Device,再使用Device連接

藍(lán)牙模塊
獲取服務(wù)
連接藍(lán)牙模塊要實(shí)現(xiàn)bluetoothGatt回調(diào),這里表示是否連接上

4.獲取服務(wù)

5.收發(fā)數(shù)據(jù)

(1)收取數(shù)據(jù)

需要判斷characteristic的uuid是否與通訊協(xié)議一致,如果一致,那么從gatt當(dāng)中讀取數(shù)據(jù)

讀,收取數(shù)據(jù)

(2)寫(xiě)數(shù)據(jù)

寫(xiě)數(shù)據(jù)

(3)一般而言,收取通知是從這里,被動(dòng)的收取從藍(lán)牙模塊發(fā)送的數(shù)據(jù),根據(jù)協(xié)議不同,dealData各有所不同;其中注意需要判斷uuid;rssi是藍(lán)牙信息強(qiáng)度,值是負(fù)數(shù),如果值越大,那么信息強(qiáng)度越強(qiáng);

6.固件升級(jí)

待續(xù);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容