2015-11-19 28 views
8

To pytanie było już dwukrotnie zadawane na tej stronie, ale ten kod w ogóle nie działa na nowoczesnych telefonach. Pracuję nad systemem Android 4.2 i systemem Android 4.3 i nic nie działa.Jak włączyć głośnik systemu Android podczas połączenia, z kodu?

Podczas odtwarzania odtwarzam plik MP3 za pośrednictwem odtwarzacza multimedialnego i działa prawidłowo, ale zarówno utwór, jak i rozmowa przychodzą przez głośnik. Jeśli wciśniesz "Głośnik", obaj dalej będą grać przez głośnik. muszę ten efekt, ale bez konieczności naciskania to sam

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"/> 

ten został zaproponowany jako rozwiązanie zarówno innych pytań dotyczących S.O, ale to po prostu nie działa. Powinien, kod jest w porządku, ale w ogóle nie robi nic z dźwiękiem.

Myśli?

+0

Czy sprawdziłeś tę ofertę w witrynie dla programistów "Możesz odtwarzać dane audio tylko na standardowe urządzenie wyjściowe.Teraz jest to głośnik urządzenia przenośnego lub zestaw słuchawkowy Bluetooth.Nie można odtwarzać plików dźwiękowych w dźwięku konwersacji podczas połączenie." ---- http://developer.android.com/guide/topics/media/mediaplayer.html –

+0

Czy jesteś w stanie odtwarzać plik dźwiękowy za pośrednictwem głośnika przenośnego lub słuchawek, gdy jesteś w trakcie połączenia ?. –

+0

Tak, stwierdziłem, że powyżej, działa absolutnie dobrze. Żenująco, godzinę po tym, jak napisałem to pytanie, znalazłem rozwiązanie. Stworzyłem osobny wątek w "while (true)", który wielokrotnie uruchamia powyższy kod. W ten sposób głośnik jest włączony, a muzyka odtwarza się wraz z połączeniem. –

Odpowiedz

3

Rozwiązałem to. Stworzyłem wątek, który stale uruchamia powyższe trzy linie kodu w "While (true)". Działa świetnie.