Я написал небольшое приложение, которое отображает мою текущую широту и долготу в простом MainActivity
. Я использовал официальные Android Developer учебные страницы о получении местоположения пользователя .
Вот код, который я написал до сих пор:
private FusedLocationProviderClient fusedLocationClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
startLocationUpdates();
}
private void startLocationUpdates() {
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setInterval(10_000);
locationRequest.setFastestInterval(5_000);
locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
LocationCallback locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
if (locationResult == null) {
((TextView) findViewById(R.id.latitudeText)).setText("No data");
((TextView) findViewById(R.id.longitudeText)).setText("No data");
}
else {
((TextView) findViewById(R.id.latitudeText)).setText(Double.toString(locationResult.getLastLocation().getLatitude()));
((TextView) findViewById(R.id.longitudeText)).setText(Double.toString(locationResult.getLastLocation().getLongitude()));
}
}
};
fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper());
}
Я включил разрешение местоположения для приложение и запустить его. Но проблема в том, что метод onLocationResult
вызывается только один раз. И это происходит сразу после вызова метода requestLocationUpdates
.
Я надеюсь, что кто-нибудь сможет мне помочь.