Обнаружение, если был получен ответ на исходящий вызов

Как только ACTION_NEW_OUTGOING_CALL был передан, мне нужно записать следующее событие другого ответчика. Не могли бы вы посоветовать, как этого добиться? Я знаю, что это возможно, так как приложение для дозвона android меняет зеленый значок андроида на фото пользователя, когда он подбирает. Спасибо!

ОБНОВЛЕНО: я взглянул на источник приложения на Android, обрабатывающий исходящие звонки. Я заметил следующий метод в ContactsUtils:

/**
 * Kick off an intent to initiate a call.
 */

 public static void initiateCall(Context context, CharSequence
 phoneNumber) {
     Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
             Uri.fromParts("tel", phoneNumber.toString(), null));
     context.startActivity(intent); }

Я предполагаю, что мой ответ в том, что вы слушаете Intent.ACTION_CALL_PRIVILEGED. Поэтому, чтобы передать мой вопрос: Кто-нибудь знает, какая деятельность обрабатывает Intent.ACTION_CALL_PRIVILEGED? Спасибо вам за расширенный

Ответ 1

Я не думаю, что там такой API, а также нет API для отправки DTMF по той же причине, что вы не можете сказать, когда этот вызов подключен.

Ответ 2

Не обязательно, чтобы это можно было фиксировать как внешнее приложение. Зеленый значок андроида является частью приложения, которое управляет вызовом, поэтому для изменения значка не требуется широковещательная передача.

Ответ 3

Что касается диспетчера телефонии android, вы не можете программно определить, был ли ответ получен или нет. Это означает, что у вас нет возможности узнать, когда пользователь выбрал телефон на другом конце. Android имеет 3 состояния диспетчера телефонии, и ни один из них не способен определить, был ли вызов фактически answerd или нет (В СЛУЧАЕ ВЫХОДНЫХ ЗВОНКОВ)

Ответ 4

Единственный способ, которым вы можете это сделать, - это разбор журналов Logcat, для этого не доступно событие PhoneStateListener.

Некоторые запрашивают его здесь: https://code.google.com/p/android/issues/detail?id=14266

В любом случае, в версиях выше Android 4.2, поскольку Logcat "песочница", это может быть невозможно...