android ble與終端通信(五)——google api ble.低功耗藍(lán)牙文檔解讀之案例初探

android ble與終端通信(五)——google api ble.低功耗藍(lán)牙文檔解讀之案例初探

ID:12779528

大小:160.50 KB

頁(yè)數(shù):11頁(yè)

時(shí)間:2018-07-19

android ble與終端通信(五)——google api ble.低功耗藍(lán)牙文檔解讀之案例初探_第1頁(yè)
android ble與終端通信(五)——google api ble.低功耗藍(lán)牙文檔解讀之案例初探_第2頁(yè)
android ble與終端通信(五)——google api ble.低功耗藍(lán)牙文檔解讀之案例初探_第3頁(yè)
android ble與終端通信(五)——google api ble.低功耗藍(lán)牙文檔解讀之案例初探_第4頁(yè)
android ble與終端通信(五)——google api ble.低功耗藍(lán)牙文檔解讀之案例初探_第5頁(yè)
資源描述:

《android ble與終端通信(五)——google api ble.低功耗藍(lán)牙文檔解讀之案例初探》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、AndroidBLE與終端通信(五)——GoogleAPIBLE4.0低功耗藍(lán)牙文檔解讀之案例初探一.概述我們直接翻譯GenericAttributeProfile(GATT)—GATT配置文件是一個(gè)通用規(guī)范,用于在BLE鏈路上發(fā)送和接收被稱(chēng)為“屬性”的數(shù)據(jù)塊。目前所有的BLE應(yīng)用都基于GATT。藍(lán)牙SIG規(guī)定了許多低功耗設(shè)備的配置文件。配置文件是設(shè)備如何在特定的應(yīng)用程序中工作的規(guī)格說(shuō)明。注意一個(gè)設(shè)備可以實(shí)現(xiàn)多個(gè)配置文件。例如,一個(gè)設(shè)備可能包括心率監(jiān)測(cè)儀和電量檢測(cè)。AttributeProtocol(ATT)—GATT在ATT協(xié)議

2、基礎(chǔ)上建立,也被稱(chēng)為GATT/ATT。ATT對(duì)在BLE設(shè)備上運(yùn)行進(jìn)行了優(yōu)化,為此,它使用了盡可能少的字節(jié)。每個(gè)屬性通過(guò)一個(gè)唯一的的統(tǒng)一標(biāo)識(shí)符(UUID)來(lái)標(biāo)識(shí),每個(gè)String類(lèi)型UUID使用128bit標(biāo)準(zhǔn)格式。屬性通過(guò)ATT被格式化為characteristics和services。Characteristic一個(gè)characteristic包括一個(gè)單一變量和0-n個(gè)用來(lái)描述characteristic變量的descriptor,characteristic可以被認(rèn)為是一個(gè)類(lèi)型,類(lèi)似于類(lèi)。DescriptorDescripto

3、r用來(lái)描述characteristic變量的屬性。例如,一個(gè)descriptor可以規(guī)定一個(gè)可讀的描述,或者一個(gè)characteristic變量可接受的范圍,或者一個(gè)characteristic變量特定的測(cè)量單位。Serviceservice是characteristic的集合。例如,你可能有一個(gè)叫“HeartRateMonitor(心率監(jiān)測(cè)儀)”的service,它包括了很多characteristics,如“heartratemeasurement(心率測(cè)量)”等。你可以在bluetooth.org找到一個(gè)目前支持的基于GAT

4、T的配置文件和服務(wù)列表。二.角色和責(zé)任這里有兩個(gè)概念中央VS外圍設(shè)備。適用于BLE連接本身。中央設(shè)備掃描,尋找廣播;外圍設(shè)備發(fā)出廣播。GATT服務(wù)端VSGATT客戶端。決定了兩個(gè)設(shè)備在建立連接后如何互相交流。為了方便理解,想象你有一個(gè)Android手機(jī)和一個(gè)用于活動(dòng)跟蹤BLE設(shè)備,手機(jī)支持中央角色,活動(dòng)跟蹤器支持外圍(為了建立BLE連接你需要注意兩件事,只支持外圍設(shè)備的兩方或者只支持中央設(shè)備的兩方不能互相通信)。當(dāng)手機(jī)和運(yùn)動(dòng)追蹤器建立連接后,他們開(kāi)始向另一方傳輸GATT數(shù)據(jù)。哪一方作為服務(wù)器取決于他們傳輸數(shù)據(jù)的種類(lèi)。例如,如果運(yùn)動(dòng)

5、追蹤器想向手機(jī)報(bào)告?zhèn)鞲衅鲾?shù)據(jù),運(yùn)動(dòng)追蹤器是服務(wù)端。如果運(yùn)動(dòng)追蹤器更新來(lái)自手機(jī)的數(shù)據(jù),手機(jī)會(huì)作為服務(wù)端。在這份文檔的例子中,androidapp(運(yùn)行在android設(shè)備上)作為GATT客戶端。app從gatt服務(wù)端獲得數(shù)據(jù),gatt服務(wù)端即支持HeartRateProfile(心率配置)的BLE心率監(jiān)測(cè)儀。但是你可以自己設(shè)計(jì)androidapp去扮演GATT服務(wù)端角色。也就是自定義三.案例好的,Google文檔中,也舉了一個(gè)例子說(shuō)明,我們要使用BLE的時(shí)候,必須有要加上兩個(gè)權(quán)限

6、android:name="android.permission.BLUETOOTH"/>這其實(shí)你要使用藍(lán)牙這個(gè)硬件都是要加上這個(gè)權(quán)限的,但是這里Google又聲明了一點(diǎn)如果n你想聲明你的軟件只為具有BLE的設(shè)備提供服務(wù)的話,你應(yīng)該要在清單文件中加入

7、roid:required="true"/>如果改為false的話,那其他藍(lán)牙也是可以使用的,我們創(chuàng)建一個(gè)工程——BLETest和傳統(tǒng)藍(lán)牙一樣,我們添加完權(quán)限之后就要去判斷這個(gè)設(shè)備是否支持BLE//判斷是否支持BLE設(shè)備if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)){Toast.makeText(this,"此設(shè)備不支持BLE",Toast.LENGTH_SHORT).show();finish();}這步操作也只是你設(shè)置

8、為false的時(shí)候才是必須的,因?yàn)槟闳绻阍O(shè)置為true,那你只給BLE服務(wù),那這個(gè)判斷也就是多余的了,緊接著,我們還需要去判斷藍(lán)牙是否開(kāi)啟,如果沒(méi)有開(kāi)啟,我們就去開(kāi)啟他,這次雖然也是用BluetoothAdapter去獲取,但是這里用了一個(gè)新的類(lèi)

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。