Android 如何連續的掃描藍牙的RSSI來測距離,實現三點定位
背景:
接到一個小夥伴求助,要實現用藍牙來測算距離,並用三點計算出藍牙設備方位,經過以往的經驗最終幫這位小夥伴實現了他的需求,下面總結下實現步驟,但願能幫到你。android
分析:
要得到藍牙的RSSI無外乎兩種方法:spa
第一種:就是基於掃瞄的方法,優勢是Android自己支持,缺點是scan的時間比較長,而且中間過程不受控制,爲了連續的測量,須要不斷的scan;.net
第二種:就是基於鏈接的方法,前提是要創建兩個藍牙設備的鏈接後,再測量RSSI,優勢是後期測量比較方便,間隔時間也較短。blog
三點定位實現原理:get
這裏的方位實際上是一個相對方位的概念,咱們須要三個藍牙模塊,三個藍牙模塊之間的距離是固定已知的,好比把這三個藍牙模塊圍成一個等邊三角形,一個頂點做爲正北方,對邊當作正南邊,如圖所示:class
只要分別計算出到三個頂點的距離,而後對比三條距離,按如圖比較大小,便可得出目標方位,這裏須要注意的是原理