Простой и легкий способ,
Получить местоположение с помощью https://github.com/sachinvarma/EasyLocation.
Шаг 1: Просто позвоните
new EasyLocationInit(MainActivity.this, timeInterval, fastestTimeInterval, runAsBackgroundService);
timeInterval -> setInterval (long) (inMilliSeconds) означает - установить интервал, в котором вы хотите получить местоположения.
fastestTimeInterval -> setFastestInterval (long) (inMilliSeconds) означает - если местоположение доступно раньше, вы можете его получить. (то есть другое приложение использует службы определения местоположения).
runAsBackgroundService = True -> (Служба будет работать в фоновом режиме и часто обновляться (в соответствии с timeInterval и fastestTimeInterval)) runAsBackgroundService = False -> (Служба будет удалена после успешного обновления местоположения)
Шаг 2: Подготовка подписчиков EventBus: объявите и аннотируйте свой метод подписки, при необходимости укажите режим потока:
например:
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@SuppressLint("SetTextI18n")
@Subscribe
public void getEvent(final Event event) {
if (event instanceof LocationEvent) {
if (((LocationEvent) event).location != null) {
((TextView) findViewById(R.id.tvLocation)).setText("The Latitude is "
+ ((LocationEvent) event).location.getLatitude()
+ " and the Longitude is "
+ ((LocationEvent) event).location.getLongitude());
}
}
}
Вот и все.
Надеюсь, это поможет кому-то в будущем.