Ich verwende den folgenden Code in einem BroadcastReceiver (Telefonstatus Hörer) Freisprechfunktion zu aktivieren:Verwendung von Audio-Manager stört Anruf 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);
Dies geschieht, wenn ein neuer abgehender Anruf über meine App gestartet wird. Wenn der Anruf getrennt wird, schalte ich die Freisprecheinrichtung aus:
Das scheint alles gut zu funktionieren ... das erste Mal. Danach scheinen die Audiostreams meines Telefons in ein Durcheinander verwickelt zu sein. Nachfolgende Aufrufe sind seltsam leise, sogar Anrufe, die außerhalb des Codes meiner App getätigt werden (wobei die obigen Einstellungen nicht ausgelöst werden). Ich kann Audio scheinbar wahllos zurückrufen, aber ich bin mir nicht sicher, was es zurückbringt.
Irgendwelche Ideen, was ich falsch machen könnte? Gibt es einen Android-Fehler, den ich nicht kenne? Wie kann ich verhindern, dass mein Audio für nachfolgende Anrufe stummgeschaltet wird?
EDIT: Ich teste auf einem Galaxy S4.
Danke für Ihre Antwort. Während ich letztendlich mein eigenes Problem gelöst habe, hat mich deine Antwort in die richtige Richtung gelenkt. Gut gemacht. –