API-интерфейсы телефонии также включают диспетчер телефонии (android. telephony.TelephonyManager), с помощью которого можно получать информацию о телефонных службах устройства, извлекать информацию о подписчике и регистрироваться на получение изменений состояния телефона. Общий сценарий использования телефонии требует от приложения выполнения некоторой бизнес-логики при входящем телефонном звонке. Например, музыкальный проигрыватель должен быть поставлен на паузу с возобновлением воспроизведения по окончании телефонного разговора. Простейший способ прослушивания изменений в состоянии телефона состоит в реализации широковещательного приемника для действия android.intent.action.PHONE_STATE. Это можно сделать таким же способом, как выше прослушивались входящие SMS-сообщения. Другой способ предусматривает использование TelephonyManager.
В этом разделе будет, как регистрироваться для получения изменений состояния телефона и как обнаруживать входные звонки. Детали представлены .
При работе с диспетчером телефонии не забывайте добавить в файл манифеста право android.permission.READ_PHONE_STATE, чтобы иметь доступ к информации о состоянии телефона. в, для получения уведомлений об изменениях состояния телефона реализуется PhoneStateListener и вызывается метод listen класса TelephonyManager. Когда поступает телефонный звонок либо изменяется состояние телефона, система вызывает метод onCallStateChanged класса PhoneStateListener с новым состоянием. Как можно будет убедиться после запуска этого примера, номер телефона входного звонка доступен, только когда состоянием является CALL_STATE_RINGING. В этом примере сообщение выводится на экран, но приложение может реализовать вместо этого собственную бизнес-логику, такую как приостановка воспроизведения аудио или видео. Для эмуляции входящих телефонных звонков можно использовать интерфейс Emulator Control среды Eclipse — тот же самый, который применялся для отправки SMS-сообщений (см. ) — но выбрать переключатель Voice (Голосовой) вместо SMS.
Обратите внимание, что в методе onPause мы требуем от TelephonyManager приостановки отправки обновлений. Когда активность находится в состоянии паузы, http://klimat25.ru/ всегда важно отключать сообщения. В противном случае диспетчер телефонии будет сохранять ссылку на объект, предотвращая его последующую очистку.
Этот пример имеет дело только с одним из состояний телефона, которые доступны для прослушивания. Сведения о прочих состояниях, включая, например, LISTEN_ MESSAGE_WAITING_INDICATOR, ищите в документации по классу PhoneStateListener. Имея дело с изменениями состояния телефона, также может понадобиться телефонный номер подписчика (пользователя); его возвращает метод TelephonyManager. getLineNumber.
Опубликовал Kest
February 14 2015 13:11:16 ·
0 Комментариев ·
3438 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.