permitindo GPS programaticamente não funciona

Eu estou tentando ativar / desativar (alternar) GPS programaticamente no meu aplicativo através de um clique de botão, mas não está funcionando. Por favor ajude. Meus dispositivos de destino não estão enraizados.

Aqui está o código que estou 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);

questionAnswers(4)

yourAnswerToTheQuestion