habilitando el GPS programáticamente no funciona

Estoy intentando habilitar / deshabilitar (alternar) el GPS programáticamente en mi aplicación a través de un clic del botón, pero no funciona. Por favor ayuda. Mis dispositivos de destino no están enraizados.

Aquí está el código que estoy usando.

private void gps()
{
Intent intent=new Intent("android.location.GPS_ENABLED_CHANGE");
Button gps = (Button)findViewById(R.id.gpsButton);
if(isGPSon())
    {
    intent.putExtra("enabled", true);
    gps.setText(R.string.f2_gps_deact);
    }
else
    {
    intent.putExtra("enabled", false);
    gps.setText(R.string.f2_gps_act);
    }
sendBroadcast(intent);

Respuestas a la pregunta(4)

Su respuesta a la pregunta