Hai provato a controllare i sorgenti del widget "controllo risparmio energia"? É disponibile da android 1.6 in poi e ha, tra gli altri, lo switch per il gps. Il widget é integrato nell'app Impostazioni.
Ora provo pure io a ripescare il sorgente
Edit: ecco il toggleGps che il widget usa:
private void toggleGps(Context context) {
ContentResolver resolver = context.getContentResolver();
boolean enabled = getGpsState(context);
Settings.Secure.setLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER,
!enabled);
}Il metoto getGpsState é anch'esso definito all'interno del codice del widget, e in sostanza restituisce lo stato del GPS (ma dai!!)