Я пробовал пример проекта геозоны Google. Я правильно получаю события входа/выхода. Но как я могу получить от него текущее местоположение пользователя. Я хотел бы отслеживать местоположение пользователя даже после точек входа/выхода. Пожалуйста помоги. пример проекта взят с портала для разработчиков.
Получить текущее местоположение из примера проекта геозоны
Ответы (2)
Вам нужно будет получить местоположение пользователя от поставщика Fused Location Provider обычным способом. Полное руководство находится здесь: http://developer.android.com/training/location/retrieve-current.html
Но в основном, когда вы получаете событие геозоны внутри своего приемника или службы, получите там экземпляр LocationClient
, подключитесь к нему и в обратном вызове onConnected()
получите последнее известное местоположение:
Location position = locationClient.getLastLocation();
В 99,9% случаев, а то и лучше, вы обнаружите, что это место находится внутри вашей геозоны.
Чтобы продолжить отслеживать обновления местоположения пользователя, следуйте инструкциям по получению обновлений местоположения: http://developer.android.com/training/location/receive-location-updates.html
в вашем широковещательном приеме или службе вы получаете GeofencingEvent, используйте его, чтобы получить позицию срабатывания
public class GeofenceTransitionsIntentService extends IntentService {
//[...]
@Override
protected void onHandleIntent(Intent intent) {
GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
if (geofencingEvent.hasError()) {
// ...
}
Location l = geofencingEvent.getTriggeringLocation()
}
//[...]
}