Я не знаю, можете ли вы обнаружить синхронизированный вызов, но различать, когда начался вызов, возможно.
Вы можете сделать это следующим образом, в CALL_STATE_IDLE:
Uri allCalls = Uri.parse("content://call_log/calls");
String lastMinute = String.valueOf(new Date().getTime() - DAY_IN_MILISECONDS);
//before the call started
Cursor c = app.getContentResolver().query(allCalls, null, Calls.DATE + " > "
+ lastMinute, null, Calls.DATE + " desc");
c.moveToFirst();
if (c.getCount() > 0) {
int duration = Integer.parseInt(c.getString(c.getColumnIndex(Calls.DURATION)));
}
если длительность> 0, то на этот вызов получен ответ.
Очевидно, что есть другие флаги, которые вы должны использовать, чтобы определить, что CALL_STATE_IDLE вызывается после того, как был сделан вызов.поставил вас в тупик за то, что вы пытаетесь сделать.