У меня есть код ниже.Он не работает должным образом, потому что поле latLng не обновляется по местоположению.Ты знаешь почему ?Значение этого поля - Text1 все время, пока приложение работает.
Я не знаю, как исправить эту ошибку.
Метод onLocationResult никогда не вызывается.
У меня есть код ниже.Он не работает должным образом, потому что поле latLng не обновляется по местоположению.Ты знаешь почему ?Значение этого поля всегда равно Text1, когда приложение работает.
Я не представляю, как исправить эту ошибку.
private FusedLocationProviderClient fusedLocationClient;
private LocationCallback locationCallback;
private LocationRequest locationRequest;
protected void createLocationRequest() {
locationRequest = LocationRequest.create();
locationRequest.setInterval(10000);
locationRequest.setFastestInterval(5000);
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createLocationRequest();
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
TextView latLng = findViewById(R.id.latLng);
if (locationResult == null) {
latLng.setText(Long.toString(Calendar.getInstance().getTimeInMillis()));
return;
}
for (Location location : locationResult.getLocations()) {
latLng.setText(String.valueOf(location.getLatitude()));
}
}
};
}
@Override
public void onStart() {
super.onStart();
fusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
// Got last known location. In some rare situations this can be null.
if (location != null) {
TextView latLng = findViewById(R.id.latLng);
latLng.setText(String.valueOf(location.getLatitude()));
}
}
});
}
private void startLocationUpdates() {
fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, null /* Looper */);
}
@Override
protected void onResume() {
super.onResume();
startLocationUpdates();
}
}