Метод onLocationChange не выполняется при перемещении - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь выполнить фрагмент кода каждый раз в течение 10 метров, когда я впервые запускаю свое приложение, оно выполняет весь код внутри onLocationChange, но после того, как я переместился более чем на 10 метров, кажется, что слушатель не работает больше или местоположение не обновляется, есть какая-либо подсказка о том, что может быть причиной этой проблемы?

@Override
    public void onLocationChanged(Location location) {
        Toast.makeText(Principal.this, "it moved: " + location.getLatitude() + "" + location.getLongitude(), Toast.LENGTH_SHORT).show();
        Log.i(TAG, "onLocationChanged: "+location.getLatitude()+""+location.getLongitude());
        getPlaceByTimer();

    }

    @Override
    public void onConnected(@Nullable Bundle bundle) {

        Toast.makeText(this, "connected", Toast.LENGTH_SHORT).show();
        startLocationUpdate();


    }

    private void initLocationRequest() {
        mLastLocationRequest = new LocationRequest();
        mLastLocationRequest.setSmallestDisplacement(10);
      mLastLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

    }


    private void startLocationUpdate() {

        initLocationRequest();

        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
            // here to request the missing permissions, and then overriding
            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
            //                                          int[] grantResults)
            // to handle the case where the user grants the permission. See the documentation
            // for ActivityCompat#requestPermissions for more details.
            return;
        }

        LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLastLocationRequest, this);
    }

FusedLocationApi кажется устаревшим, но я читал, что он работает и для версий сервисов Google Play, поэтому я думаю, что здесь нет проблем

1 Ответ

0 голосов
/ 27 августа 2018

похоже, что добавление параметра mLastLocationRequest.setFastestInterval(10000); в mLastLocationRequest решило проблему обновления

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