Не удается получить местоположение в автономном режиме (без Wi-Fi или мобильной сети) с помощью FusedLocationApi - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь получить текущее местоположение пользователя даже без 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());
                            }
                        }
                    });

1 Ответ

0 голосов
/ 20 сентября 2018

добавив эту строку

mLocationRequest.setSmallestDisplacement(300);

вы понимаете, что расстояние между двумя точками должно составлять 300 метров. Вы пытались преодолеть это расстояние?

попробуй удалить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...