В настоящее время я использую расширение каталога вызовов с этим простым кодом, чтобы показать имя вызывающего абонента на экране, и он работает:
class CallDirectoryHandler: CXCallDirectoryProvider, CXCallDirectoryExtensionContextDelegate {
func requestFailed(for extensionContext: CXCallDirectoryExtensionContext, withError error: Error) {
}
override func beginRequest(with context: CXCallDirectoryExtensionContext) {
context.delegate = self
context.addIdentificationEntry(withNextSequentialPhoneNumber: 92302XXXXXXX, label: "XYZ")
context.completeRequest()
}
}
Ожидал
Я хочу при входящем звонке получить номер телефона того, кто звонит, и запросить у API получение данных для этого конкретного номера только потому, что я не могу сохранить миллионы номеров в приложении.





Как отмечает Paulw11, то, что вы описываете, невозможно. Приложения намеренно крайне ограничены в том, какую информацию они могут получить о телефонных звонках пользователей. Однако более распространенным подходом было бы предоставление службы каталогов, такой как GAL, CardDAV или LDAP. Затем пользователь может добавить это как учетную запись контактов («Настройки» > «Почта, контакты, календари» > «Добавить учетную запись» > «Другое»), и система автоматически выполнит поиск при необходимости. Учетные записи могут быть предоставлены через профиль конфигурации, чтобы пользователю не приходилось вводить информацию вручную.
Нет, это невозможно. Это было бы нарушением конфиденциальности.