O ícone do GPS parece mudar de estado de acordo com as intenções de transmissão recebidas. Você mesmo pode alterar seu estado com os seguintes exemplos de código:
Notifique que o GPS foi ativado:
Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", true);
sendBroadcast(intent);
Notifique que o GPS está recebendo correções:
Intent intent = new Intent("android.location.GPS_FIX_CHANGE");
intent.putExtra("enabled", true);
sendBroadcast(intent);
Notifique que o GPS não está mais recebendo correções:
Intent intent = new Intent("android.location.GPS_FIX_CHANGE");
intent.putExtra("enabled", false);
sendBroadcast(intent);
Notifique que o GPS foi desativado:
Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", false);
sendBroadcast(intent);
Código de exemplo para registrar o receptor nas intents:
// MyReceiver must extend BroadcastReceiver
MyReceiver receiver = new MyReceiver();
IntentFilter filter = new IntentFilter("android.location.GPS_ENABLED_CHANGE");
filter.addAction("android.location.GPS_FIX_CHANGE");
registerReceiver(receiver, filter);
Ao receber essas intenções de transmissão, você pode notar as mudanças no status do GPS. No entanto, você será notificado apenas quando o estado mudar. Portanto, não é possível determinar o estado atual usando essas intents.