我們正在嘗試使用Altbeacon庫來滿足下一個研究案例: 我們希望將幾個IBeacons放置在它們之間距離不超過3米的房間或走廊中,並且我們希望獲得最近的Ibeacon基於掃描信標的用戶電話。 我們首先嚐試建造一個只有一個燈塔的區域,每個區域都是封閉的,這意味着當你進入一個區域時,你不可能同時在其他區域,並且當你離開一個區域,你輸入下一個最接近的一個,等等。但這不是圖書館實施的方法。 我們想知道在Altbeacon庫中是否有任何方法來應用我們的方法,或者是否需要某種補丁來滿足我向您介紹的研究案例。Ibeacon地區封閉集?
0
A
回答
0
來實現這一目標最簡單的方法是將範圍使用單個區域的所有信標,並開始爲:
@Override
public void onBeaconServiceConnect() {
try {
// Set up a region that matches all of your beacons. You may want to replace the first
// null with a UUID that all your beacons share.
Region allBeaconsRegion = new Region("all beacons", null, null, null);
beaconManager.startRangingBeaconsInRegion(mAllBeaconsRegion);
beaconManager.setRangeNotifier(this);
} catch (RemoteException e) {
Log.e(TAG, "Cannot connect to beacon service");
}
}
請注意,如果您使用的是帶有RegionBootstrap
一個自定義的應用程序類,你可以把上面代碼中的didEnterRegion
方法代替了onBeaconServiceConnect
方法。
一旦你開始測距,你將會得到一個每秒一次的回調信號和一列所有可見的信標。您可以添加代碼,以確定哪一個是最接近:
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region arg1) {
Beacon closestBeacon = null;
for (Beacon beacon : beacons) {
if (closestBeacon == null) {
closestBeacon = beacon;
}
else {
if (closestBeacon.getDistance() > beacon.getDistance()) {
closestBeacon = beacon;
}
}
}
// Do Something with closestBeacon here
}
請記住,最接近的信標可以來回變化,由於無線電噪聲,所以你可能需要添加額外的邏輯,以防止最接近的燈塔翻轉來回頻繁。
相關問題
- 1. 封閉函數的區別?
- 2. 模塊和封閉之間的區別
- 3. 識別封閉區域的算法
- 4. IBeacon。定製過濾區域
- 5. 的Clojure與本地 - 瓦爾在封閉
- 6. 修改封閉
- 7. 封閉性
- 8. 在封閉
- 9. 封閉在Javascript
- 10. 從封閉
- 11. 與封閉
- 12. PHP,封閉類
- 13. 封閉範圍
- 14. 關閉地區,在VS2010 C++
- 15. iBeacon(Kontakt Beacon)區域監控在android
- 16. iBeacon顯示在Android上的區域
- 17. 錯誤在封閉
- 18. 計劃 - 在封閉
- 19. AS3封閉混亂
- 20. 封閉缺失者
- 21. 如何在封閉
- 22. CFG和封閉性
- 23. 不是封閉類
- 24. 與接受封閉
- 25. 寫DSL地圖裏面的地圖與封閉常規,
- 26. 封閉實例無效時的封閉類型行爲
- 27. 應用CSS來封閉DIV,而不是封閉的DIV
- 28. 一堆小封閉與一個大封閉
- 29. 在Ionic 2中,iBeacon集成拋出「沒有提供IBeacon」的錯誤
- 30. 發送和靜態封閉鏽的區別是什麼?
我不知道Altbeacon庫,但是如果它與其他信標庫一樣,則應該使用信標而不是監視區域來查找最近的信標。 – 2014-10-20 09:39:08
使用此庫,您只能在特定區域內的信標範圍內找到距離該區域最近的區域(假設有兩個或更多)。我們想讓申請只進入最近的地區,當進入時,我們不會離開它,直到其他地區離我們更近。 – 2014-10-20 09:50:12
「地區」僅在您的應用程序提供的代碼級別的Android上存在,包括此庫。就Android而言,BLE數據包內容是任意數據,並且您的選項是開放的。但是,如果您想與iOS兼容,則需要儘可能少地使用區域,因爲一次可以查找的區域數量有嚴格的限制。 – 2014-10-21 16:11:17