за это время у меня возникла другая проблема, у меня есть приложение для Recording Call, но Recorder.start () никогда не заканчивается.
Вот код для записи:
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(path);
recorder.setMaxDuration(1000);
recorder.prepare();
recorder.start();
эта часть кода выполняется при нажатии кнопки для вызова номера. Но когда я нажимаю кнопку завершения вызова в AVD, этот код никогда не запускается:
phoneListener = new PhoneStateListener()
{
@Override
public void onCallStateChanged(int state, String incomingNumber)
{
switch (state)
{
case TelephonyManager.CALL_STATE_IDLE:
currentPhoneState = "CALL_STATE_IDLE";
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
currentPhoneState = "CALL_STATE_OFFHOOK";
break;
case TelephonyManager.CALL_STATE_RINGING:
currentPhoneState = "CALL_STATE_RINGING";
break;
}
_fileTrace.onTrace("INFO", "CallState: ", currentPhoneState, null);
if (currentPhoneState == "CALL_STATE_OFFHOOK")
{
llamada = true;
_fileTrace.onTrace("INFO", "Recording Start", currentPhoneState, null);
try {
recorder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
if (llamada && currentPhoneState == "CALL_STATE_IDLE") {
_fileTrace.onTrace("INFO", "CallState: ", currentPhoneState, null);
recorder.stop();
}
}
};
_CurrTelephonyManager.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
К вашему сведению: первый фрагмент кода находится во вспомогательном классе, а второй - в упражнении.
Я надеюсь, что кто-то может мне помочь.
Спасибо всем!