0
我見過一些例子來說明如何通過測距得到埃迪斯通燈塔的URL幀,而不是通過監測如何使用Android Beacon庫在監視模式下從Eddystone Beacon獲取網址?
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
for (org.altbeacon.beacon.Beacon beacon: beacons) {
if (beacon.getServiceUuid() == 0xfeaa && beacon.getBeaconTypeCode() == 0x10) {
// This is a Eddystone-URL frame
String url = UrlBeaconUrlCompressor.uncompress(beacon.getId1().toByteArray());
Log.d("Eddystone", "I see a beacon transmitting a url: " + url +
" approximately " + beacon.getDistance() + " meters away.");
}
}
}
});
上didRangeBeaconsInRegion有一個org.altbeacon.beacon.Beacon參數。但是對於監視didEnterRegion只有區域作爲參數。
@Override
public void didEnterRegion(Region region) {
}
所以,我怎麼監測模式eddysone信的網址是什麼?可能嗎?
我想創建附近的信標列表,並在離開時從列表中刪除它們。我只能想到這樣做,使用監控,將該URL添加到輸入列表中,並在退出時將其刪除。有沒有其他方法?或者這樣做的正確方法? – bman
是的,您可以在通過測距找到特定檢測到的URL後開始監控 - 基於beacon.getId1()在測距回調中定義的區域。當您從監控中獲得退出回叫時,您知道單個信標已經消失。只要確保你將區域的刺激標識符設置爲獨特的東西,如beacon.getId1()。toSring() – davidgyoung
這是怎麼做到的? ''beaconManager.startMonitoringBeaconsInRegion(新地區(beacon.getId1()。的toString(),NULL,NULL,NULL))'' – bman