我使用的廣播接收器(電話狀態偵聽器)下面的代碼干擾,使揚聲器:使用AudioManager與通話音頻
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);
當新的呼出通過我的應用程序開始出現這種情況。當呼叫斷開時,我關閉揚聲器:
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_NORMAL);
audioManager.setSpeakerphoneOn(false);
這一切似乎都很好......第一次。之後,我手機的音頻流似乎陷入了混亂。後續調用很奇怪,即使是從我的應用程序代碼之外進行的調用(上述設置未觸發)。我可以隨意看到迴音,但我不確定是什麼導致它返回。
關於我可能做錯什麼的想法?有沒有我不知道的Android錯誤?如何避免爲隨後的通話靜音我的音頻?
編輯:我在Galaxy S4上測試。
感謝您的回答。當我最終解決了自己的問題時,你的回答激勵着我朝着正確的方向前進。做得好。 – 2014-10-21 19:55:52