Прослушивание изменения статуса GPS

Мне нужно слушать, когда пользователь включает или выключает GPS, и реагировать на это.
Я понимаю, что это было доступно с использованием класса GPSStatus, однако это устарело.
Как мне это сделать сейчас?


person amitairos    schedule 16.01.2017    source источник


Ответы (1)


Вы можете использовать LocationListener !!

private class MyLocationListener implements LocationListener {

        @Override
        public void onLocationChanged(Location loc) {
            Toast.makeText(
                    getBaseContext(),
                    "Location changed: Lat: " + loc.getLatitude() + " Lng: "
                            + loc.getLongitude(), Toast.LENGTH_SHORT).show();
            //handlePostion(loc);
        }
        @Override
        public void onProviderDisabled(String provider) {
}

        @Override
        public void onProviderEnabled(String provider) {}

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {}
    }

И ниже, как использовать этот слушатель

mLocationListener = new MyLocationListener();
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        mLocationListener = new MyLocationListener();
        mLocationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 5000, 10, mLocationListener);

И в обратном вызове providerDisabled вы можете узнать, когда GPS выключен

person thunder413    schedule 16.01.2017
comment
Почему вы дважды объявляете mLocationListener во втором блоке? - person Artem Fedotov; 08.11.2018