Исходящий CALL_STATE

Как получить доступ к текущему статусу исходящего звонка (набирается, активен и т.д.)?

В моем приложении я хочу, чтобы все светодиоды на устройстве были неактивны в течение «состояния активного вызова», но во время «состояния набора номера» и после завершения вызова светодиоды должны гореть. Мне нужно прочитать (или зафиксировать) статус - но как?

Я уже читал, что нельзя спрашивать CALL_STATE_OFFHOOK.

Можно ли вывести статус через графический интерфейс (экраны телефонов)? Или есть другая возможность?

Я знаю, что это не новая тема, но я ищу только статусы "набор номера/активен/отключен" - остальные (удержание, оповещение, входящий,...) не имеют значения.

Если графический интерфейс изменится, должна быть возможность прочитать это «изменение поведения» и использовать его .... или я слишком наивен?


person LPH    schedule 18.12.2013    source источник


Ответы (1)


Вы можете использовать AudioManager, чтобы получить текущее состояние звука, эффективно видя, находитесь ли вы в данный момент в вызове или нет.

mAudioManager.getMode() == AudioManager.MODE_IN_CALL

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

person bo malone    schedule 18.12.2013
comment
спасибо за такой творческий подход!это могло бы частично решить мою проблему!не знаете при каком call-статусе возвращается ИСТИНА?-при активном или при дилинговом статусе? - person LPH; 19.12.2013
comment
Я не был уверен, поэтому протестировал его с помощью приложения, которое сейчас разрабатываю. Кажется, он переходит в AudioManager.MODE_IN_CALL, как только подключается и начинает звонить. Когда он говорит, что набирает номер, но таймера нет, он все еще находится в режиме звука по умолчанию. - person bo malone; 19.12.2013
comment
спасибо за тестирование! Я также пытался проверить ваш подход, но, к сожалению, не получил хорошего результата. Кажется, что AudioManager.MODE_IN_CALL запускается сразу после нажатия зеленой кнопки телефона, чтобы начать вызов, поэтому этот подход не дает лучшего результата, чем CALL_STATE_IDLE и CALL_STATE_OFFHOOK. или я что-то упускаю? - person LPH; 19.12.2013
comment
Я так не думаю. Ну, это была идея по крайней мере - person bo malone; 19.12.2013