Как узнать, успешно ли я подключился к своему исходящему номеру в Android?

Мне нужно знать это, чтобы я мог отправлять DTMF, и это будет мой второй вопрос!


person Mikey    schedule 14.04.2010    source источник
comment
возможный дубликат Определить, был ли принят исходящий вызов   -  person tzot    schedule 11.11.2011


Ответы (1)


Вы можете использовать PhoneStateLisenter, чтобы отслеживать изменения. в состоянии вызова.

Итак, вы прислушиваетесь к изменению LISTEN_CALL_STATE.

С onCallStateChanged.

Таким образом, когда состояние меняется с ЗВОНОК на ТЯНГ, вы знаете, что телефонный звонок был подключен.

Тот же принцип применяется к IDLE на OFFHOOK в вашей ситуации, прислушайтесь к изменению с IDLE на OFFHOOK, и вы узнаете, что подключились к вызову.

Вы также можете изучить намерение ACTION_NEW_OUTGOING_CALL, Android позволяет вам «перехватить» это при наборе номера, и вы можете получить обратно код результата, указывающий, был ли вызов подключен или нет.

Для тонов DTMF загляните в ToneGenerator, это позволяет вам создавать тоны DTMF, и тогда .startTone () должен позволить вам проигрывать тон DTMF.

Однако вы не можете отправлять сигналы DTMF по восходящей линии связи.

person Donal Rafferty    schedule 14.04.2010
comment
Я звоню в систему голосового ответа, значит, она не звонит? поскольку мой журнал в ЗВОНКЕ не отображается в DDMS, а отображается только в режиме ожидания в режиме OFFHOOK? и как мне добавить с его помощью тоны dtmf? - person Mikey; 14.04.2010
comment
Я добавил дополнительную информацию к своему ответу, надеюсь, это поможет - person Donal Rafferty; 14.04.2010
comment
С ним нельзя добавлять тоны dtmf. Вы не можете воспроизводить звук в телефонном потоке. В лучшем случае вы можете воспроизводить на устройстве сигналы DTMF, и если устройство находится в режиме громкой связи, эти сигналы могут улавливаться микрофоном. - person CommonsWare; 14.04.2010
comment
хм, значит, единственное решение в этом случае - добавить их в setResultData? (ну, я сделал это, и IVR может это распознать) - person Mikey; 14.04.2010
comment
Также может работать следующее намерение: - Intent mIntent = new Intent (Intent.ACTION_CALL, Uri.parse (tel: + phoneNumber +; + dtmfSequence)); - person Donal Rafferty; 14.04.2010
comment
точно так же, как установка в setResultData, я думаю, это единственное решение! потому что мой босс хочет знать, чтобы отправить dtmf после того, как я подключился к IVR ... - person Mikey; 14.04.2010
comment
На данный момент это да, в группах Google был комментарий о поддержке отправки тонов dtmf во время голосового вызова в будущих обновлениях от разработчика Google. - person Donal Rafferty; 14.04.2010
comment
да, я думаю, я читал это где-то также хе-хе-хе, ну спасибо за ответы @markmurphy и @donal! - person Mikey; 14.04.2010