2012-02-18 4 views
0

Я разрабатываю приложение, которое должно:Как определить начало и конец входящего вызова в Android?

  • Start, когда начинается входящий вызов.
  • Окончание, как только звонок закончился.

Более конкретно, я не хочу, чтобы приложение, чтобы начать, когда телефон звонит, но когда начинается фактическая разговор это (он же, пользователь принял входящий вызов).

Кто-нибудь знает, как это сделать? И как поймать эти события?

ответ

2

Радиовещательный приемник поможет вам. Here - официальная страница разработчика Google.

Here - небольшое учебное пособие на том же самом.

+0

Я еще не понимаю, как поймать события, которые я хочу. Где это в вашем втором примере? –

+0

Все, что вам в принципе нужно, - это [широковещательный приемник] (http://developer.android.com/reference/android/content/BroadcastReceiver.html). Код прямо в конце учебника дает вам именно это. –

1

Что вы хотите от TelephonyManager.

Вам необходимо создать BroadcastReceiver который прослушивает для ACTION_PHONE_STATE_CHANGED. Когда вы объявите его в своем AndroidManifest.xml, он откроет ваш сервис/активность. Когда вы создаёте, очень вероятно, что телефон в настоящий момент находится в состоянии звонка. Поэтому вам необходимо зарегистрироваться для дальнейших изменений PhoneState через TelephonyManager.listen(). Таким образом, вы заметите, когда телефон подключился, а также когда он вернется в режим ожидания.

Не забывайте запрашивать READ_PHONE_STATE permission.

+0

Можете ли вы привести мне пример? –

+0

Пример для BroadcastReceiver для TelephoneState можно найти здесь (http://www.vogella.de/articles/AndroidServices/article.html). Для слушателя штата попробуйте [this] (http://marakana.com/forums/android/examples/62.html). Вам просто нужно их объединить. – Luminger

+0

Я уже видел первую статью, @Anand S дал мне эту ссылку. Во втором случае не описывается способ определения начала и конца входящего вызова. Я ошибаюсь? –

Смежные вопросы