configuração @Vibrate não está desativada ao receber chamadas - Android

Quero desativar a configuração de vibração do dispositivo quando uma chamada for recebida. Eu implementei um BroadcastReceiver para esse recurso que executa a ação ao receberPHONE_STATE broadcast. O problema é que não consigo desligar as vibrações. Eu tentei o seguinte:

AudioManager audioManager = (AudioManager)
                            context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, 
                               AudioManager.VIBRATE_SETTING_OFF);

o

Vibrator vib = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vib.cancel();

A primeira abordagem parece ideal para mim. Até funciona para ativar "as vibrações" quando uma chamada é recebida. Mas não consigo desativá-los neste cenário.

lguém já tentou iss

Edit: eu verifiquei o código do aplicativo de telefone do Android. O código a seguir está presente em Ringer.java:

if (shouldVibrate() && mVibratorThread == null) {
    mContinueVibrating = true;
    mVibratorThread = new VibratorThread();
    mVibratorThread.start();
}

Um segmento é iniciado inicialmente pelo aplicativo Telefone, que vibra o telefone. Quando altero a configuração de vibração para desativada, essa verificação é ignorada, mas o encadeamento já iniciado continua em execuçã

Isso também explica como as vibrações podem ser ativadas quando uma chamada é recebida. Nesse caso, o encadeamento não está sendo executado inicialmente. Então, é iniciado quando ligo a configuração de vibração. Acho que não há solução para o problema sem alterar o aplicativo Phone.

questionAnswers(1)

yourAnswerToTheQuestion