Я работаю над созданием приложения, которое запрещает пользователю звонить определенным контактам. У меня есть контакты в базе данных, но я не знаю, куда идти после этого. Я знаю, что я должен использовать широковещательный приемник и разрешение в манифесте, но кроме того, что я застрял.
Это объясняет, как это сделать: http://groups.google.com/group/android-developers/browse_thread/thread/931e04811839326e
Суть в том, что вам нужно использовать BroadcastReciever
для перехвата намерения NEW_OUTGOING_CALL
, но при этом убедитесь, что приоритет вашего фильтра намерений равен -1. Чтобы прервать исходящий вызов, вам нужно будет вызвать setResultData(null);
перед возвратом из BroadcastReceiver.onReceive(Context, Intent)
(что предотвращает обработку обработчиком исходящего вызова обработчиком потока).
Ну, если устройство переходит в "Режим полета", то, очевидно, услуги телефонии не будут работать. Когда-то в вашем BroadcastReceiver вы получите намерение NEW_OUTGOING_CALL, заставьте ваше устройство перейти в "Режим полета". Существует намерение сделать это, и, конечно, ваше приложение должно иметь необходимое разрешение также изменить режим устройства на режим полета. Приложение также должно вернуть устройство в рабочий режим после завершения операции "Блок".