Может ли приложение iPhone блокировать телефонные звонки? - PullRequest
20 голосов
/ 19 мая 2009

Можно ли написать приложение, которое будет блокировать входящие и исходящие телефонные звонки? Или iPhone слишком сильно заблокирован? Спасибо!

Ответы [ 6 ]

21 голосов
/ 19 мая 2009

РЕДАКТИРОВАТЬ: См. Ответ Раджана Махешвари ниже. CallKit теперь обеспечивает это. Даже вещи, которые, казалось, никогда не изменятся, могут со временем измениться.


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

5 голосов
/ 08 ноября 2016

Теперь возможно обнаруживать и блокировать нежелательные телефонные звонки с iOS 10 и выше.

См. CallKit Framework

Инфраструктура CallKit (CallKit.framework) позволяет приложениям VoIP интегрироваться с пользовательским интерфейсом iPhone и дает пользователям отличный опыт. Используйте эту среду, чтобы пользователи могли просматривать и отвечать на входящие вызовы VoIP на экране блокировки и управлять контактами из вызовов VoIP в представлениях «Избранное» и «Недавние» приложения «Телефон».

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

2 голосов
/ 06 марта 2017

Это возможно в iOS 10.

Вот как это сделать ->

1.Создать расширение каталога вызовов enter image description here

2. Заблокировать входящий звонок ->

class CustomCallDirectoryProvider: CXCallDirectoryProvider {
    override func beginRequest(with context: CXCallDirectoryExtensionContext) {
        let blockedPhoneNumbers: [CXCallDirectoryPhoneNumber] = [ phone Numbers here with country code! ]
        for phoneNumber in blockedPhoneNumbers.sorted(by: <) {
            context.addBlockingEntry(withNextSequentialPhoneNumber: phoneNumber)
        }

        context.completeRequest()
    }
}

Примечание: Если вы используете callKit для приема входящих вызовов, нет необходимости вручную блокировать другие вызовы.

Ссылка -> https://developer.apple.com/reference/callkit

2 голосов
/ 19 мая 2009

Ряд событий потенциально может прервать приложение - входящий вызов, SMS-сообщение или оповещение календаря. Если пользователь игнорирует прерывание, ваше приложение продолжит работу. Если нет, он прекратится.

Подробнее см. Документы Apple .

1 голос
/ 19 мая 2009

Приложения не могут блокировать телефонные звонки. Пользователь может включить режим полета в настройках.

0 голосов
/ 10 октября 2010

Приложение не имеет доступа к функции телефона и не может заблокировать вызов.
Альтернатива - подождать, пока Apple предложит эту функцию в будущем.

А пока вы можете

  • Спросите своего провайдера - некоторые провайдеры делают это
  • Создание настраиваемого сигнала вызова (без звука), который будет связан с каким-либо номером (без вызова).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...