Определить, был ли ответ на исходящий вызов - PullRequest
51 голосов
/ 12 февраля 2010

После того, как ACTION_NEW_OUTGOING_CALL было передано, мне нужно захватить следующее событие ответа другой стороны. Не могли бы вы посоветовать, как этого добиться? Я знаю, что это возможно, поскольку приложение для набора номера Android меняет зеленый значок 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? Спасибо заранее

Ответы [ 4 ]

7 голосов
/ 30 апреля 2012

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

3 голосов
/ 12 февраля 2010

Это не обязательно должно быть возможно, чтобы захватить это как внешнее приложение. Зеленый значок Android является частью приложения, которое управляет вызовом, поэтому для его изменения не требуется трансляция.

2 голосов
/ 16 февраля 2014

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

1 голос
/ 06 ноября 2013

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

Некоторые просят об этом здесь: https://code.google.com/p/android/issues/detail?id=14266

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

...