我有这个Android应用程序使用附近的API检测Beacons。我能够检测到该区域内的所有信标。如何在该特定区域找到最近的灯塔?有没有可以提供帮助的Google API?
答案 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
个回调可让您访问检测到的信标的信号强度和距离估算值:
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);
}
您订阅的方式与订阅onFound
和onLost
回调的方式相同。