国产精品一区欧美日韩不卡_91超碰国产熟女_综合色久七七综合尤物_在线观看国产99_秘 羞羞视频免费网站欧美_久久精品亚洲热综合一本奇米_亚洲麻豆精品视频_野狼a∨午夜福利在线观看_免费观看亚洲av_天天操人人射

藍(lán)牙開發(fā)中的常見的問題

  • 發(fā)布時(shí)間:2022-08-12 09:13:12

  • 瀏覽:289

藍(lán)牙開發(fā)中的常見的問題:

藍(lán)牙技術(shù)憑仗其普遍性與簡(jiǎn)約性改動(dòng)了設(shè)備之間的無線通訊。由于其功耗與本錢較低,在安康醫(yī)療、體育健身、家庭樓宇自動(dòng)化、信標(biāo)等應(yīng)用范疇的開展過程中發(fā)揮著至關(guān)重要的作用。藍(lán)牙給我們帶來很多便當(dāng),不過關(guān)于一些新手,在停止藍(lán)牙開發(fā)之前,有必要對(duì)其相關(guān)的學(xué)問有細(xì)致的理解,這里主要引見一些藍(lán)牙應(yīng)用開發(fā)的常見問題。

1.應(yīng)用如何做自動(dòng)重連

其實(shí)自動(dòng)重連比想象的要簡(jiǎn)單許多,無論是Android還是ios端,只需求在設(shè)備斷開銜接的拜托辦法中,重新調(diào)用gatt.connet或者是centralManager.connet辦法就能夠了,無論當(dāng)時(shí)設(shè)備能否有點(diǎn),能否在四周,當(dāng)設(shè)備再次開會(huì)或者銜接到可銜接范圍內(nèi),都會(huì)自動(dòng)被連上。

2.銜接失敗處置

分兩個(gè)平臺(tái)來說,iOS端有銜接失敗的拜托,但簡(jiǎn)直不會(huì)發(fā)作這種狀況;而關(guān)于同款設(shè)備,android常常會(huì)呈現(xiàn)銜接失敗的狀況,status != BluetoothGatt.GATT_SUCCESS ,android端開發(fā)請(qǐng)不要把銜接失敗和斷開銜接放在一塊處置,由于斷開銜接能夠直接嘗試重新銜接,而銜接失敗后嘗試重新銜接,需求加一些延時(shí),并且需求gatt.close,清空一下狀態(tài),否則會(huì)把gatt阻塞招致手機(jī)不重啟藍(lán)牙就再也無法銜接任何設(shè)備的狀況。

3.后臺(tái)運(yùn)轉(zhuǎn)

iOS后臺(tái)運(yùn)轉(zhuǎn),需求設(shè)備中info.Plist權(quán)限,key:Required background modes,value: bluetooth-central(手機(jī)作為central) , bluetooth-peripheral(手機(jī)作為外設(shè))

4.同時(shí)銜接多個(gè)設(shè)備

Android很簡(jiǎn)單,創(chuàng)立多個(gè)gattCallback,每個(gè)gattCallback單獨(dú)管理設(shè)備銜接后的操作,而iOS也倡議不要?jiǎng)?chuàng)立多個(gè)CBCentralManager,多個(gè)CBCentralManager理論上能夠用,但是會(huì)存在多個(gè)手機(jī)版本存在不同的行為,還有一些很容易出錯(cuò)的問題,這塊內(nèi)容不細(xì)說了。運(yùn)用同一個(gè)CBCentralManager,經(jīng)過進(jìn)入拜托的peripheral的identifier辨別不同的設(shè)備,停止不同的操作和處置。

5555.jpg

5.掃描播送包

一切外設(shè),只要在發(fā)出播送包的狀況下,才干被central發(fā)現(xiàn),絕大多數(shù)狀況下,外設(shè)被銜接后就不會(huì)發(fā)出播送(也有例外),很多人遇到無法找到設(shè)備的問題,大多屬于這種狀況。

6.進(jìn)步藍(lán)牙銜接速度

無論是iOS,還是Android,都能夠經(jīng)過已綁定的設(shè)備,在不開啟掃描的狀況下停止快速銜接,iOS需求的參數(shù)是peripheral的identifier,Android需求mac地址。但Android和iOS還是有一些區(qū)別的,比方iOS不能拿到已綁定的設(shè)備list,但是能夠經(jīng)過UUID去拿到peripheral的實(shí)例。而Android能夠拿到已綁定的設(shè)備list。Android綁定過程需求手動(dòng)調(diào)用createBond的辦法,而iOS在銜接勝利一次后會(huì)自動(dòng)綁定。Android在處置createBond時(shí),常常會(huì)由于不同手機(jī)平臺(tái),不同設(shè)備,會(huì)產(chǎn)生兼容性的問題,這點(diǎn)需求留意。

7.定向掃描

在掃描時(shí)分能夠傳入serviceUUID,這樣能夠掃描到特定條件的設(shè)備,進(jìn)步掃描的速度,掃除干擾。

8.如何獲取mac地址

Android能夠直接經(jīng)過getAddress得到mac地址;而iOS出于蘋果的平安戰(zhàn)略問題,無法直接取得mac地址,只能得到一個(gè)mac地址換算出來的identifier。不過在智能設(shè)備開發(fā)時(shí),普通都會(huì)思索到這個(gè)問題,大多數(shù)智能設(shè)備會(huì)把mac地址保管在播送數(shù)據(jù)中,不同設(shè)備可能會(huì)存在不同的位置。

9.Babybluetooth藍(lán)牙庫的運(yùn)用

Babybluetooth是iOS的藍(lán)牙庫的封裝,iOS藍(lán)牙拜托層級(jí)特別厭惡,一個(gè)拜托接著一個(gè)拜托,比方先進(jìn)入掃描的拜托,在進(jìn)入鏈接的拜托,在進(jìn)入銜接勝利,發(fā)現(xiàn)效勞,發(fā)現(xiàn)特征,讀寫操作,一套操作被拆分的很散,容易出錯(cuò),代碼不易維護(hù),上手慢等缺陷,Babybluetooth對(duì)CoreBluetooth停止了封裝,把拜托回調(diào)停止辦法調(diào)用的方式,改成了鏈?zhǔn)睫k法次第調(diào)用,直接調(diào)用baby.enjoy()辦法,完成一整套操作,簡(jiǎn)化了上手難度和代碼維護(hù)本錢。


相關(guān)新聞