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.