Я пытаюсь получить текущее местоположение пользователя даже без Wi-Fi или мобильной сети, используя FusedLocationApi.
Как этого добиться с помощью API-интерфейса с привязкой .?
Диспетчер местоположений обладает этой функцией, я не хочу использовать диспетчер местоположений, так как в расположении с предохранителями я получаю наиболее точный результат, поэтому, Как я могу добиться этого, поэтому позвольте мне опубликовать то, что я пытался до сих пор
см. Ниже код
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API).build();
mGoogleApiClient.connect();
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(10000);
mLocationRequest.setFastestInterval(5000);
mLocationRequest.setSmallestDisplacement(300);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
PendingResult<Status> statusPendingResult =
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, new LocationCallback() {
@Override
public void onLocationResult(LocationResult result) {
Log.d("TAG", "onLocationResult" + result.getLastLocation().getLatitude() + " " + result.getLastLocation().getLongitude());
}
@Override
public void onLocationAvailability(LocationAvailability locationAvailability) {
Log.d("TAG", "onLocationAvailability: isLocationAvailable = " + locationAvailability.isLocationAvailable());
}
}, null);
statusPendingResult.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.getStatus().isSuccess()) {
Log.d("TAG", "Successfully requested location updates");
} else {
CommonMethods.setAddress("Couldn't find the location");
Toast.makeText(MainActivity.this, "Couldn't get the location. Make sure location is enabled on the device", Toast.LENGTH_SHORT).show();
Log.e("TAG",
"Failed in requesting location updates, "
+ "status code: "
+ status.getStatusCode() + ", message: " + status
.getStatusMessage());
}
}
});