Desidero disattivare l'impostazione Vibrazione del dispositivo quando arriva una chiamata. Ho implementato un BroadcastReceiver per questa funzione che esegue l'azione sulla ricezione della trasmissione PHONE_STATE
. Il problema è che non sono in grado di disattivare le vibrazioni. Ho provato la seguente:Vibrazione che non si disattiva quando si riceve una chiamata in arrivo - Android
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();
Il primo approccio sembra l'ideale per me. Funziona anche per attivare "su" le vibrazioni quando viene ricevuta una chiamata. Ma, non sono in grado di disattivarle in questo scenario.
Qualcuno ha provato questo?
Modifica: ho controllato il codice dell'app Telefono Android. A seguito di codice è presente in Ringer.java:
if (shouldVibrate() && mVibratorThread == null) {
mContinueVibrating = true;
mVibratorThread = new VibratorThread();
mVibratorThread.start();
}
Un thread viene avviato inizialmente da app del telefono che vibra il telefono. Quando cambio l'impostazione di vibrazione su off, questo controllo viene saltato ma il thread già avviato continua a essere in esecuzione.
Questo spiega anche come le vibrazioni possono essere attivate quando arriva una chiamata. In tal caso, il thread non è in esecuzione inizialmente. Quindi, viene avviato quando accendo l'impostazione di vibrazione. Non penso che ci sia alcuna soluzione al problema senza cambiare l'app del telefono.
sarei interessato anche a quello. per quanto ne so è così: il filo o il contesto che inizia la vibrazione è l'unico che può fermarlo in seguito. riguardo al cambiamento delle impostazioni di vibrazione: sembra che ci sia un bug in Android. nessuna notifica viene inviata agli ascoltatori se l'impostazione cambia, quindi la vibrazione non può fermarsi. – SimonSays
Ciao Aman, hai risolto questo problema? Sto affrontando lo stesso problema, spero che mi aiuterete a riguardo lo stesso. –