Mam tę aplikację na Androida, która wykrywaSygnały nawigacyjne korzystające z pobliskiego interfejsu API. Jestem w stanie wykryć wszystkie sygnalizatory obecne w okolicy. Jak znaleźć najbliższy sygnał nawigacyjny w tym konkretnym obszarze? Czy istnieje interfejs API Google, który może pomóc?
Odpowiedzi:
0 dla odpowiedzi № 1Chociaż interfejs API w pobliżu nie daje żadnych wskazówek, który sygnał nawigacyjny jest bliżej, możesz go użyć Biblioteka Android Beacon w tym celu. Ma interfejs API określający zarówno przybliżoną odległość do każdego skanowanego sygnału nawigacyjnego, jak i RSSI (siłę sygnału) tego sygnału nawigacyjnego. Możesz po prostu posortować według wszystkich widocznych sygnałów nawigacyjnych, aby znaleźć najbliższy.
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.");
}
}
0 dla odpowiedzi nr 2
Zakładając, że mówimy o interfejsie API wiadomości w pobliżu, istnieją MessageListener
wywołania zwrotne, które dają dostęp do oszacowania siły sygnału i odległości wykrytych sygnałów nawigacyjnych:
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);
}
Subskrybujesz je tak samo, jak subskrybujesz onFound
i onLost
callbacks.