我正在使用PhoneStateListener,因此當用戶接到呼叫或開始呼叫時,揚聲器將立即打開。使用PhoneStateListener設置揚聲器
PhoneStateListener phoneStateListener = new PhoneStateListener()
{
@Override
public void onCallStateChanged(int state, String incomingNumber)
{
if (state == TelephonyManager.CALL_STATE_RINGING)
{
} else if(state == TelephonyManager.CALL_STATE_IDLE)
{
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(false);
} else if(state == TelephonyManager.CALL_STATE_OFFHOOK)
{
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);
}
super.onCallStateChanged(state, incomingNumber);
}
};
TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
if(mgr != null)
{
mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}
這是我使用的代碼。它工作得很好,直到我已經安裝果凍豆,現在我注意到它只在用戶接到呼叫時設置揚聲器,但如果他開始呼叫,它什麼也不做
奇怪的是,狀態應該是OFFHOOK,當手機在另一邊響鈴時(當撥打電話) – Timmetje 2013-02-20 15:39:19