Eu tenho esse aplicativo Android que detectaBeacons usando API próxima. Eu sou capaz de detectar todos os faróis presentes na área. Como posso encontrar o farol mais próximo nessa área em particular? Existe alguma API do Google que possa ajudar?
Respostas:
0 para resposta № 1Enquanto a API Nearby não fornece nenhuma indicação de qual farol está mais próximo, você pode usar o Biblioteca do Android Beacon para esse fim. Ele possui uma API Ranging que informa a distância estimada para cada farol digitalizado e o RSSI (intensidade do sinal) desse farol. Você pode simplesmente classificar por todos os beacons visíveis para encontrar o mais próximo.
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 para resposta № 2
Supondo que estamos falando da API de mensagens próximas, existem MessageListener
retornos de chamada que dão acesso às estimativas de intensidade e distância do sinal dos beacons detectados:
RSSI e retornos de chamada à distância
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);
}
Você os assina da mesma maneira que assina o onFound
e onLost
retornos de chamada.