Sto utilizzando il seguente codice in un BroadcastReceiver (telefono ascoltatore Stato) per abilitare il vivavoce:Utilizzando AudioManager interferisce con la chiamata audio
final Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
}
}, 500);
Questo accade quando viene iniziata una nuova chiamata in uscita tramite la mia app. Quando la chiamata viene scollegata, mi rivolgo viva voce fuori:
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_NORMAL);
audioManager.setSpeakerphoneOn(false);
Tutto questo sembra funzionare bene ... la prima volta. In seguito, i flussi audio del mio telefono sembrano essere ingarbugliati. Le chiamate successive sono stranamente silenziose, anche le chiamate effettuate al di fuori del codice della mia app (in cui le impostazioni precedenti non vengono attivate). Posso richiamare l'audio della chiamata in modo apparentemente casuale, ma non sono sicuro di quale sia la causa del suo ritorno.
Qualche idea su cosa potrei fare male? C'è un bug di Android di cui non sono a conoscenza? Come posso evitare di mettere a tacere il mio audio per le chiamate successive?
MODIFICA: Sto testando su un Galaxy S4.
Grazie per la risposta. Mentre ho risolto il mio problema, la tua risposta mi ha spronato nella giusta direzione. Buon lavoro. –