Я разрабатываю приложение, которое запускает будильник (Ringtone), когда я запускаю вызов, и он также устанавливает режим динамика. Поэтому я хотел бы остановить будильник, когда человек, которому я звоню, отвечает на звонок. Как я мог это достичь?Можно ли узнать, используя 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;
}
};
Я был бы признателен за любую помощь. Thanxs много.
Я хочу точно знать, когда другой человек отвечает на телефон, но я думаю, что @tamasJozsa правильно, и нет никакого способа, чтобы получить это состояние – Carl