Отслеживание маяков - PullRequest
0 голосов
/ 22 марта 2019
        @Override
        public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
            for (Beacon beacon : beacons) {

                Beacon.setHardwareEqualityEnforced(true);


                    Log.i("MainActivity", "I see a beacon that is about " + beacon.getDistance() + " meters away. ");

            }
        }
    });

    try {
        beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
    } catch (RemoteException e) {    }
}

В настоящее время у меня есть 3 маяка Bluetooth, которые я хочу отслеживать, я хочу написать что-то вроде

If (beacon.getBluetoothAddress().equals("x") && beacon.getDistance() < beacon2.getDistance() && beacon.getDistance() < beacon3.getDistance()){
Log.i(msg: "beacon1 is the the closest to you");

Как я могу отслеживать 3 маяка?

1 Ответ

0 голосов
/ 23 марта 2019

Чтобы найти ближайший маяк, вы можете попробовать что-то вроде этого:

        @Override
        public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region){

            String closestBeacon = null;
            for (Beacon beacon : beacons) {
                if (closestBeacon == null)
                    closestBeacon = beacon;
                else {
                    if (closestBeacon.getDistance() > beacon.getDistance()) {
                        closestBeacon = beacon;
                    }
                }
            }

            Log.i(TAG, closestBeacon.getBluetoothAddress() + " beacon is the closest to you");
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...