Android 2.1+ Пауза для входящего / исходящего звонка, возобновление после завершения - PullRequest
0 голосов
/ 13 июля 2011

Существует ли в Android надежный способ определения начала и конца входящих и исходящих вызовов для таких вещей, как пауза и воспроизведение звука.

Я сделал следующее:

    telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
            callEventListener = new PhoneStateListener(){

                @Override
                public void onCallStateChanged(int state, String incomingNumber) {
                    super.onCallStateChanged(state, incomingNumber);
                    if (state == TelephonyManager.CALL_STATE_IDLE){
                        //....
                    }
                    else if (state == TelephonyManager.CALL_STATE_RINGING){
                        //....
                    }
                }
            };
telephonyManager.listen(callEventListener, PhoneStateListener.LISTEN_CALL_STATE);

Что, похоже, работает для входящих звонков, но для исходящих звонков я получаю CALL_STATE_IDLE, когда другой человек поднимает трубку ... а не когда телефонный звонок заканчивается. Я полагаю, я должен делать что-то глупое или упустить что-то еще, что я могу проверить?

1 Ответ

1 голос
/ 13 июля 2011

Вы правы в том, что вы не получаете никаких обновлений состояния при запуске исходящего вызова.

Вам необходимо подключиться к намеренной трансляции ACTION_NEW_OUTGOING_CALL . Вот Блог разработчиков Android , который может помочь понять тот факт, что это заказная трансляция. А вот сообщение в блоге с простым примером того, как настроить и использовать эту трансляцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...