Reputation: 6810
I need to have my app monitor whether the GPS adapter is anabled or disabled. I don't care about the actual GPS functionality running at the monemt or not -- I need the status of the GPS adapter.
I can manually do it by calling:
String providers = Settings.Secure.getString(getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
If "gps" is listed, then it's active, otherwise it's not. But I can't find any documentation on getting notified when GPS is enabled or disabled by the user. I did try to use addGpsStatusListener in LocationManager, but that only notifies when the actual GPS fix is being acquired (like if the Maps app is being used).
Any ideas?
Upvotes: 3
Views: 1992
Reputation: 6810
LocationContentObserver Nevermind, I found the answer;
getContentResolver().registerContentObserver(
Settings.Secure.getUriFor(Settings.System.LOCATION_PROVIDERS_ALLOWED),
false,
new LocationContentObserver ( new Handler())
);
class LocationContentObserver extends ContentObserver {
public LocationContentObserver( Handler h ) {
super( h );
}
public void onChange(boolean selfChange) {
SendNotification(false);
}
}
Upvotes: 6