如何找到最近的Eddystone Beacon和Nearby API?

时间:2018-05-03 16:25:01

标签: android beacon eddystone google-nearby

我有这个Android应用程序使用附近的API检测Beacons。我能够检测到该区域内的所有信标。如何在该特定区域找到最近的灯塔?有没有可以提供帮助的Google API?

2 个答案:

答案 0 :(得分:0)

虽然Nearby API没有告诉您哪个信标更近,但您可以使用Android Beacon Library来实现此目的。它有一个测距API,可以告诉您扫描每个信标的估计距离以及该信标的RSSI(信号强度)。您可以简单地按所有可见信标进行排序,以找到最接近的信标。

        public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
            for (Beacon beacon : beacons) {
                Log.i(TAG, "I see a beacon that is about "+beacon.getDistance()+" meters away.");        
            }
        }

答案 1 :(得分:0)

假设我们正在讨论Nearby Messages API,那么有MessageListener个回调可让您访问检测到的信标的信号强度和距离估算值:

RSSI and distance callbacks

public void onBleSignalChanged(final Message message, final BleSignal bleSignal) {
  Log.i(TAG, "Message: " + message + " has new BLE signal information: " + bleSignal);
}

public void onDistanceChanged(final Message message, final Distance distance) {
  Log.i(TAG, "Distance changed, message: " + message + ", new distance: " + distance);
}

您订阅的方式与订阅onFoundonLost回调的方式相同。