desactivar el GPS android [duplicar]

Posible duplicado:
Cómo habilitar programáticamente el GPS en Android Cupcake

Actualmente estoy escribiendo una aplicación en Android que funciona con el GPS. En este momento puedo averiguar si el GPS está habilitado. Mi problema es que quiero habilitar el GPS en el inicio de la aplicación si está deshabilitada. ¿Cómo puedo hacer esta programación? también, quiero crear funciones que enciendan y apaguen el GPS, leí todos los subprocesos en stackoverflow al respecto, sin embargo, todas las funciones que probé obtuve un "lamentablemente tu aplicación debe detenerse" (no olvidé agregar permiso)

¿Puede alguien ayudarme con una función de trabajo para habilitar o deshabilitar el GPS?

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

Al principio, utilicé estas funciones:

 private void turnGPSOn(){
        String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);

        if(!provider.contains("gps")){ //if gps is disabled
            final Intent poke = new Intent();
            poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); 
            poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
            poke.setData(Uri.parse("3")); 
            sendBroadcast(poke);
        }
    }

    private void turnGPSOff(){
        String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);

        if(provider.contains("gps")){ //if gps is enabled
            final Intent poke = new Intent();
            poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
            poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
            poke.setData(Uri.parse("3")); 
            sendBroadcast(poke);
        }
    }

entonces intenté usar:

ENABLE GPS:

Intent intent=new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", true);
sendBroadcast(intent);
DISABLE GPS:

Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", false);
sendBroadcast(intent);

ambos no estan trabajando para mi

¿Alguien tiene idea?

Respuestas a la pregunta(1)

Su respuesta a la pregunta