L'icône GPS semble changer d'état en fonction des intentions de diffusion reçues. Vous pouvez changer son état vous-même avec les exemples de code suivants :
Notifier que le GPS a été activé :
Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", true);
sendBroadcast(intent);
Notifier que le GPS reçoit des corrections :
Intent intent = new Intent("android.location.GPS_FIX_CHANGE");
intent.putExtra("enabled", true);
sendBroadcast(intent);
Notifier que le GPS ne reçoit plus de corrections :
Intent intent = new Intent("android.location.GPS_FIX_CHANGE");
intent.putExtra("enabled", false);
sendBroadcast(intent);
Notifier que le GPS a été désactivé :
Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", false);
sendBroadcast(intent);
Exemple de code pour enregistrer le récepteur aux 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);
En recevant ces intentions de diffusion, vous pouvez remarquer les changements d'état du GPS. Cependant, vous ne serez notifié que lorsque l'état change. Il n'est donc pas possible de déterminer l'état actuel en utilisant ces intents.