Страницы

Поиск по вопросам

вторник, 9 апреля 2019 г.

Как перехватить вызов номера или “вызвать” им приложение?

Всем привет, уже не редко встречается как при помощи вызова какого нибудь "супер"-номера (например ##007*#*, при этом набирать его не надо), происходит вызов какого либо приложения или запланированной цели. Как такое можно реализовать?
Ну вот если кто-то ещё не понял мою мысль, привожу в пример один из антивирусов (названия не помню, тем более за рекламу мне ни кто не платил 😂), который постоянно скрыт, но если набрать номер (а на самом деле пароль, который был введён ранее в настройках) и соответственно позвонить, то антивирус сразу же разворачивается перед юзером.


Ответ

Задача довольно простая.
Создаете BroadcastReceiver, который будет перехватывать набранные номера:
public class OutgoingReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) {
// получаем набранный номер String mOutgoingNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); if (mOutgoingNumber.equals("##007*#*")) { setResultData(null); // сбрасываем звонок
// другие необходимые вам действия при наборе нужного номера
} } }
Регистрируем ресивер на срабатывание при наборе исходящего номера (интент NEW_OUTGOING_CALL) и даем необходимые разрешения на контроль исходящих звонков (пермишен PROCESS_OUTGOING_CALLS) в манифесте приложения.
AndroidManifest.xml:





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

Комментариев нет:

Отправить комментарий