监听 GPS 状态变化

Listen for GPS Status change

我需要在用户打开或关闭 GPS 时监听,并据此采取行动。
我知道这可以使用 GPSStatus class,但已弃用。
我现在该怎么做?

您可以使用 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 何时关闭