Перехватить входящий вызов, попасть в веб-сервис и отобразить ответ на «панели отклонения приема вызова» Android? - PullRequest
2 голосов
/ 13 декабря 2011

Я хочу создать приложение для Android, которое будет выполнять следующие действия:

  1. Ловить / прослушивать событие входящего вызова (я знаю, что этот шаг может иметь дубликаты на SO, но радиполноты, я спрашиваю)

  2. Принимает на себя управление и запускает веб-службу (HTTP POST), чтобы получить некоторую информацию из Интернета

  3. Иотображать так же, как «виджет оповещения» поверх «кнопок приема / отклонения вызова», обычно это место, где мы получаем «лицо» контакта.

Основной вопрос заключается в том,Возможно ли разработать такое приложение на складе Android?если да, то как?Каковы последствия, если таковые имеются?

Решение должно работать и на последних выпусках Android (2.3 и более поздние версии, 2.3 имеет спорный патч, который может сломаться, если приложения зависят от API частной телефонии Android)

http://developer.android.com/reference/android/content/BroadcastReceiver.html гласит, что

В частности, вы не можете показывать диалог или привязку к услуге изнутри BroadcastReceiver.Для первого вы должны вместо этого использовать API NotificationManager.В последнем случае вы можете использовать Context.startService () для отправки команды в службу.

1 Ответ

0 голосов
/ 13 декабря 2011

Для 1) части вы можете создать BroadcastReceiver и прослушать

Действие TelephonyManager # ACTION_PHONE_STATE_CHANGED.

Это будет обрабатывать ваше событие вызова.

Для части 2) необходимо написать AsyncTask , который выполняет действие HttpPost для вашего веб-сервиса. В Интернете доступно множество учебных пособий о том, как выполнить действие HttpPost.

Теперь, когда вы реализуете AsyncTask, у вас есть метод onPostExecute . Внутри этого метода вы можете выполнить третью часть отображения с помощью диалогового окна Alert.

Надеюсь, это поможет,

Всего наилучшего

Приветствия

...