Я пытаюсь получить текущее местоположение с помощью FusedLocationApi.

Я пытаюсь получить текущее местоположение, используя API плавного определения местоположения.

private void setInitialLocation() {


        if (ActivityCompat.checkSelfPermission(getActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(MainActivity.this, android.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(googleApiClient, request, new LocationListener(){
            @Override
            public void onLocationChanged(Location location) {


                mLastLocation = location;

                try {

                } catch (Exception ex) {

                    ex.printStackTrace();
                    Log.e("MapException", ex.getMessage());

                }

            }
        });
    }

Студия Android выдает эту ошибку

Класс «Анонимный класс, производный от LocationListener» должен быть либо объявлен абстрактным, либо реализовывать абстрактный метод.

пока я реализую весь абстрактный метод прослушивателя местоположения.


person Faizan Abbas    schedule 04.05.2018    source источник
comment
Вы импортировали import com.google.android.gms.location.LocationListener; ?   -  person IntelliJ Amiya    schedule 04.05.2018
comment
да, я сделал @IntelliJAmiya   -  person Faizan Abbas    schedule 04.05.2018
comment
поделитесь полным кодом. Похоже, вы что-то упускаете.   -  person IntelliJ Amiya    schedule 04.05.2018
comment
Вместо расширения LocationListener реализовать LocationListener ошибка вполне ОБЪЯСНИТЕЛЬНАЯ . ЕСЛИ вы расширяете locationListener, вам нужно сделать свой класс абстрактным!   -  person Santanu Sur    schedule 04.05.2018
comment
FusedLocationApi устарел. Может быть, эта ссылка может вам помочь.   -  person callmejeevan    schedule 04.05.2018


Ответы (1)


FusedLocationApi устарел. Используйте это FusedLocationProviderClient

Подробная ссылка находится здесь

Создайте экземпляр FusedLocationProviderClient

mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);


mFusedLocationClient.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) {
                // Logic to handle location object
            }
        }
    });
person Archana    schedule 04.05.2018