2015-11-26 66 views

回答

2

是的,可以使用該庫檢測非信標BLE設備。如果您首先測量設備一米的已知rssi,則還可以計算到設備的估計距離。

下面的代碼演示瞭如何做到這一點:

final DistanceCalculator distanceCalculator = new ModelSpecificDistanceCalculator(this, null); 
    final int rssiAtOneMeter = -59; 

    mBeaconManager.setNonBeaconLeScanCallback(new NonBeaconLeScanCallback() { 
     @Override 
     public void onNonBeaconLeScan(BluetoothDevice bluetoothDevice, int rssi, byte[] bytes) { 
      Double estimatedDistnaceInMeters = distanceCalculator.calculateDistance(rssiAtOneMeter, rssi); 
      // TODO: do something with estimatedDistanceInMeters 
     } 
    }); 
+0

謝謝,我看到setNonBeaconLeScanCallback在最新的版本中添加。 – Droider

+0

非常好的功能。然而,雖然非信標BLE設備仍在廣告,並且beaconManager仍然獲得來自信標設備的回叫,但回調僅被觸發一次。 beaconManager安裝有任何技巧嗎? (例如在iOS上,我們可以告訴我們每個設備只需要發現一次還是每次掃描都會收到通知......在這種情況下是否會發生這樣的規則?) – JBA

+0

更多信息:我剛剛在上面描述的問題發生在三星S4 mini與Android 4.4.2。在Android 7.1.2的Nexus 5x上,回調按預期工作(多次通知存在)。 關於Android 7具有哪些/ 4.4的功能沒有...? – JBA