2015-11-19 18 views
8

Questa domanda è stata fatta e ha risposto due volte prima su questo sito, ma quel codice non sembra funzionare sui telefoni moderni. Sto lavorando su Android 4.2 e Android 4.3 e nessuno dei due sembra funzionare.Come abilitare l'altoparlante Android durante una chiamata, dal codice?

Sto riproducendo un MP3 tramite un lettore multimediale durante la chiamata, e funziona perfettamente, ma sia la canzone che la chiamata stanno arrivando attraverso l'altoparlante. Se premo "Altoparlante", entrambi continuano a suonare attraverso l'altoparlante. ho bisogno in tal senso, ma senza dover premere io

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
    audioManager.setMode(AudioManager.MODE_IN_CALL); 
    audioManager.setSpeakerphoneOn(true); 

    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 

Questo è stato suggerito come una soluzione per entrambe le altre domande sul S.O, ma semplicemente non funziona. Dovrebbe, il codice va bene, ma semplicemente non fa nulla per l'audio.

Pensieri?

+0

Hai controllato questa citazione nel sito degli sviluppatori "È possibile riprodurre i dati audio solo per il dispositivo di output standard. Al momento, vale a dire l'altoparlante dispositivo mobile o un auricolare Bluetooth. Non è possibile riprodurre file audio in audio conversazione nel corso di una chiamata." ---- http://developer.android.com/guide/topics/media/mediaplayer.html –

+0

Sei in grado di riprodurre il file audio, attraverso l'altoparlante o le cuffie cellulare se si è in una chiamata ?. –

+0

Sì, ho affermato che sopra, funziona perfettamente. Abbastanza imbarazzante, un'ora dopo aver postato questa domanda ho trovato una soluzione. Ho creato un thread separato in un "while (true)" che esegue ripetutamente il codice sopra. In questo modo l'altoparlante è acceso e la musica sta suonando insieme alla chiamata. –

risposta

3

Ho risolto. Ho creato un thread che esegue costantemente le tre righe di codice sopra in un "While (true)". Funziona alla grande.

Problemi correlati