2016-10-04 3 views
2

地域で複数のビーコンが検出された場合、どの最新のものが検出されたかをどのようにして見つけることができますか?出口領域でビーコンデータを取得することはできますか?また、新しいビーコンがその領域に入ったときをどのように検出できますか?

ビーコンにも存在しますが、特定のビーコンがその領域を離れたことをどのように知ることができますか?

答えて

2

この問題を解決する典型的な方法は、ビーコン監視とビーコンのレンジングを組み合わせてです。

あなたは、個々の識別子を読み、どのようなビーコンのマップを維持する範囲でビーコンを使用しては、次のように前に見てきた:あなたが再びトリガするロジックをしたいので

private HashSet<Beacon> beaconsSeen = new HashSet<Beacon>(); 
@Override 
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {] 
    for (Beacon beacon : beacons) { 
     if (!beaconsSeen.contains(beacon)) { 
      beaconsSeen.add(beacon); 
      // Perform your logic here 
     } 
    } 
} 

がビーコンは、後にした後再発見された場合すべての地域でのビーコン消え、あなたは地域の終了時にマップをクリアする必要があります。

@Override 
public void didExitRegion(Region region) { 
    beaconsSeen.clear(); 
} 
+0

素晴らしい@davidgyoung、私はそれが他のすべてではないビーコンデータが、範囲かどうかであるだけで1つのビーコンを、削除didExitRegion方法にしたいですビーコンはまだHashSetにあります –

+0

didExitRegionが呼び出されると、領域内の*すべてのビーコンが消えたことを意味します。 – davidgyoung

関連する問題