2015-05-20 38 views
0

我目前使用AltBeacon library在Android上開發我的應用程序。AltBeacon中的信標藍牙地址與BluetoothAdapater地址

我需要確定哪個廣告設備從掃描設備的視角發送了信標。所以,我正在考慮使用藍牙MAC地址來檢查廣告設備。

使用庫,當信標集合作爲下面找到我的RangeNotifier調用回調函數:

 
@Override 
public void didRangeBeaconsInRegion(Collection beacons, Region region) { 
    for (Beacon b : beacons) { 
    System.out.println(b.getBluetoothAddress()); 
    } 
} 

測試後,我注意到,getBluetoothAddress()不匹配的廣告設備的藍牙MAC地址。

在廣告設備,我獲得藍牙MAC地址如下:

 
public String getMacAddress() { 
    BluetoothAdapter.getDefaultAdapter().getAddress(); 
} 

我的問題,因此有:

  1. 我錯了,以假設BeacongetBluetoothAddress()不同來自廣告客戶的藍牙MAC地址?如果不同,返回的地址是Beacon
  2. 如何在廣告之前獲取廣告設備的Beacon.getBluetoothAddress()?
  3. 有關識別廣告設備(除使用藍牙MAC地址外)的任何其他建議,將不勝感激。

感謝,

回答

0

什麼樣的信標,您使用的是(製造商)? 廣告MAC地址是一個欺騙性地址,所以它肯定有可能得到不同的值。甚至有製造商(例如萬向節)內置MAC地址旋轉,因此接收設備將不能從兩個來自同一設備但具有不同MAC的信號中識別設備。

在通常情況下,如果您知道所有要在應用中作出反應的信標,則應該足以通過它的UUID,主要和次要組合來識別信標。

+0

使用唯一的UUID識別設備幫助。謝謝, – wns349