Для прослушивания GPS, который пользователь включил, используя строку состояния, вы можете настроить прослушиватель для изменений через менеджер местоположений:
private class DisabledGPSListener implements LocationListener{
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
locationManager.removeUpdates(this);
locationManager.addGpsStatusListener(gpsStatusListener);
}
установить этот прослушиватель внутри onCreate ()
if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
locationManager.addGpsStatusListener(gpsStatusListener);
}else{
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,0, new DisabledGPSListener());
}
где gpsStatusListener является экземпляром:
private class GPSStatuslistener implements GpsStatus.Listener {
@Override
public void onGpsStatusChanged(int event) {
switch (event) {
case GpsStatus.GPS_EVENT_STARTED:
Log.d(TAG, "ongpsstatus changed started");
//TODO: your code that get location updates, e.g. set active location listener
break;
case GpsStatus.GPS_EVENT_STOPPED:
Log.d(TAG, "ongpsstatus changed stopped");
createGpsDisabledAlert();
}
}