KT6368A藍(lán)牙模塊關(guān)于IOS系統(tǒng)或者手機(jī)獲取藍(lán)牙m(xù)ac地址的方法說(shuō)明
一、簡(jiǎn)介
KT6368A藍(lán)牙模塊關(guān)于IOS系統(tǒng)或者手機(jī)獲取藍(lán)牙m(xù)ac地址的方法說(shuō)明
一些客戶在開(kāi)發(fā)APP的時(shí)候,經(jīng)常會(huì)遇到IOS的問(wèn)題,所以我們?cè)诖藲w類總結(jié)一下,希望能幫助到大家,這里核心的重點(diǎn)在于藍(lán)牙芯片這一端的處理
因?yàn)槲覀儽旧頉](méi)有開(kāi)發(fā)app的能力,收集的信息以及經(jīng)驗(yàn)都是基于和客戶之間的溝通,而客戶那邊的app或者小程序開(kāi)發(fā),很多都是我們?nèi)虆⑴c的,所以在這一塊能給出一些行之有效的建議
開(kāi)發(fā)安卓和IOS的APP中,在獲取藍(lán)牙模塊的MAC地址的時(shí)候有區(qū)別
1、安卓系統(tǒng)在藍(lán)牙這一塊,給了獲取藍(lán)牙模塊MAC地址的接口,所以直接用就行
包括安卓端的微信小程序或者其他小程序
2、但是IOS比較嚴(yán)謹(jǐn),不允許獲取藍(lán)牙模塊的MAC地址,沒(méi)有給出API,所以必須要在藍(lán)牙模塊這一端做一些特別的設(shè)置
==》方法1:設(shè)定一個(gè)固定的UUID,專門用來(lái)和APP交互,意思就是app連接之后通過(guò)這個(gè)uuid去讀取藍(lán)牙模塊的MAC地址
==》方法2:把藍(lán)牙模塊的MAC地址,存在在廣播包里面,這樣IOS的藍(lán)牙在搜索的時(shí)候,就可以直接獲取到藍(lán)牙模塊的MAC地址

二、詳細(xì)描述
2.1 方法1--特定的UUID去讀取MAC地址
其實(shí)這類型的應(yīng)用并不多,因?yàn)樗枰⑦B接之后,才能獲取到mac地址,這樣就不實(shí)用了
在我們配合的大量客戶中,很少有采用這樣的方式的 。其實(shí)實(shí)現(xiàn)也很簡(jiǎn)單,一說(shuō)就能懂
所以這個(gè)方法,暫時(shí)不推薦使用,請(qǐng)?jiān)敿?xì)了解一下方法二。

2.2 方法2--MAC地址存放在藍(lán)牙模塊廣播包里面
這里,我們引用一下KT6368A藍(lán)牙芯片的廣播包說(shuō)明

這里我們?cè)趶V播包里面,添加了芯片藍(lán)牙的 MAC 地址? 對(duì)比右邊的截圖,即可知道規(guī)律
這里我們稱之為:advertisData,做這個(gè)的目的,有如下原因:
1、微信小程序開(kāi)發(fā):無(wú)法直接獲取藍(lán)牙芯片的 mac 地址,沒(méi)有相應(yīng)的API,所以可以通過(guò)這個(gè)獲取到,具體網(wǎng)上可以搜一下
2、APP 開(kāi)發(fā)--IOS 端,也沒(méi)辦法直接獲取 MAC 地址,也是通過(guò)這個(gè)方式得到藍(lán)牙芯片的 MAC 地址
3、APP 開(kāi)發(fā)--安卓端,沒(méi)有這個(gè)問(wèn)題,直接通過(guò) API 時(shí)可以獲取到藍(lán)牙芯片的 mac 地址的。所以用不用這個(gè)功能,都無(wú)所謂
2.3 方法2--測(cè)試方法

1、IOS的測(cè)試,這里用的APP是 “BLEHelper”
2、因?yàn)槭褂胣rf connect 測(cè)試比較麻煩
3、這兩個(gè)app都是基于IOS開(kāi)發(fā)的工具,所以他們使用的API接口是一樣的。也就是說(shuō),mac地址放在廣播包里面是可以的
4、存放的位置是manufacturerData里面 0x724c21cb1c93
5、既然這些工具APP能獲取到廣播包里面的mac地址
那么你們自己開(kāi)發(fā)ios的app或者微信小程序,也應(yīng)該是沒(méi)問(wèn)題的
HCI_EIR_DATATYPE_MANUFACTURER_SPECIFIC_DATA=? ? 0xFF? ? ? ? ? ? ? ? ? ? ?
安卓的測(cè)試,使用的是nrf connect
安卓端就不去啰嗦了
三、總結(jié)
強(qiáng)烈推薦方法二,這樣就能完美的解決這個(gè)問(wèn)題了,也可以拿KT6368A藍(lán)牙芯片測(cè)一下