GpsStatus.Listener не срабатывает при изменении состояния сети

Я хочу, чтобы мое приложение RTT могло контролировать, когда / будем ли мы получать обновления местоположения, независимо от GPS или сети. Я могу легко контролировать состояние GPS с помощью GpsStatus.Listener, но не могу найти эквивалент для сетевых обновлений. Например, событие сработает, если мы войдем в область без сети или Wi-Fi, или произойдет тайм-аут, как в случае, описанном GpsStatus.GPS_EVENT_SATELLITE_STATUS

Коды фрагментов здесь:

    mGPSReceiver = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
    mLocationListener = new LocationListener() {
        private Location mLastLocation;

        @Override
        public void onLocationChanged(final Location location) {
            // STUFF
        }

        @Override
        public void onProviderDisabled(final String provider) {
            if (mGPSReceiver.getProviders(true).size() == 0) { // WRONG
                PhoneStatusService.this.setGPSStatus(false);
            }
        }

        @Override
        public void onProviderEnabled(final String provider) {
        }

        @Override
        public void onStatusChanged(final String provider, final int status, final Bundle extras) {
        }
    };
    mGPSListener = new GpsStatus.Listener() {
        @Override
        public void onGpsStatusChanged(final int event) {
            switch (event) {
                case GpsStatus.GPS_EVENT_STARTED:
                    break;
                case GpsStatus.GPS_EVENT_FIRST_FIX:
                    setGPSStatus(true);
                    break;
                case GpsStatus.GPS_EVENT_STOPPED:
                    break;
                case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
                    final boolean isGPSFixing = (SystemClock.elapsedRealtime() - mLastLocationMillis) < GPS_TIMEOUT;
                    setGPSStatus(isGPSFixing);
                    break;
                default:
                    break;
            }
        }
    };
    mGPSReceiver.addGpsStatusListener(mGPSListener);
    mGPSReceiver.requestLocationUpdates(LocationManager.GPS_PROVIDER, GPS_FIX_TIME, 0,
            mLocationListener);
    mGPSReceiver.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, GPS_FIX_TIME, 0,
            mLocationListener);

Ответы на вопрос(0)

Ваш ответ на вопрос