7

Android デバイスで AltBeacon サンプル アプリを使用しています - altbeacon.org が提供するサンプル アプリはこちら: https://github.com/AltBeacon/android-beacon-library-reference

ただし、起動時のアプリは 1 つのビーコンのみを検出して表示します。Android デバイスの近くに約 5 つのビーコンがあります。すべてのビーコンを検出するにはどうすればよいですか?

RangingActivity.java で、ビーコンが見えたときに呼び出される次のメソッドに気付きました。

public void onBeaconServiceConnect() {
    beaconManager.setRangeNotifier(new RangeNotifier() {
    @Override 
    public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
        if (beacons.size() > 0) {
            EditText editText = (EditText) RangingActivity.this.findViewById(R.id.rangingText);                    
                    Beacon firstBeacon = beacons.iterator().next();
                    logToDisplay("The first beacon " + firstBeacon.toString() + " is about " + firstBeacon.getDistance() + " meters away.");
            }
        }
    }

次のように、while ループでコレクションから読み取るようにイテレータを変更しました。

     Beacon firstBeacon;
     while(beacons.iterator().hasNext()){
                firstBeacon = beacons.iterator().next();
                logToDisplay("The first beacon " + firstBeacon.toString() + " is about " + firstBeacon.getDistance() + " meters away.");
            }

ただし、この変更によりアプリがクラッシュします。

私の質問:

(1) Android デバイスの近くにあるすべてのビーコンを表示するにはどうすればよいですか?

(2) 領域外に出るビーコンを検出するにはどうすればよいですか?

4

1 に答える 1