我正在開發一個應用程序,當我開始通話並且它還設置揚聲器模式時,會啓動鬧鐘(鈴聲)。所以我想在我打電話的人接聽電話時停止鬧鐘。我怎麼能做到這一點?當其他人接聽電話時,是否可以知道使用TelephonyManager(onCallStateChanged)?
這是我的代碼:
private PhoneStateListener phoneCallListener = new PhoneStateListener() {
private int prevCallState=TelephonyManager.CALL_STATE_IDLE;
public void onCallStateChanged(int state, String incomingNumber) {
try {
AudioManager audiomanager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
switch (state) {
case TelephonyManager.CALL_STATE_OFFHOOK:
if (prevCallState == TelephonyManager.CALL_STATE_IDLE){
//Inicio de llamada saliente
audiomanager.setMode(AudioManager.MODE_IN_CALL);
audiomanager.setSpeakerphoneOn(true);
}
break;
case TelephonyManager.CALL_STATE_IDLE:
if (prevCallState == TelephonyManager.CALL_STATE_OFFHOOK){
//Fin de llamada saliente
audiomanager.setSpeakerphoneOn(false);
}
break;
}
} catch (Exception e) {
}
prevCallState = state;
}
};
我希望得到任何幫助。感謝很多。
我想確切地知道當對方接聽電話,但我認爲@tamasJozsa是正確的,有沒有辦法讓那個狀態 – Carl 2014-08-28 07:58:57