CallDirectory - Как иметь текст динамической метки для номера телефона

У меня есть требование ниже, и мне нужны ваши ценные предложения и решения.

Требование:

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

Пожалуйста, предложите, можно ли выполнить требование, если да, пожалуйста, помогите мне с решением.

Я выполняю следующие шаги:

  1. Создал CallDirectoryExtension и добавил конкретный номер с некоторой меткой.
  2. Включил идентификацию и блокировку звонков
  3. Всякий раз, когда я звоню, [Имя приложения] Идентификатор вызываемого абонента: [Ярлык] отображается вместо Неизвестно.
  4. Для идентификации входящего вызова я использую CXCallObserver и метод public func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall).
  5. Вызов необходимого API и сохранение данных в Userdefaults в группе приложений.
  6. Вызов CXCallDirectoryManager.sharedInstance .reloadExtension(withIdentifier: "com.example.Sample.SampleDirectory") для повторного выполнения переопределения метода CXCallDirectoryProvider func beginRequest(with context: CXCallDirectoryExtensionContext) context.addIdentificationEntry(withNextSequentialPhoneNumber: phoneNumber, label: label) выполняется с новый измененный ярлык, получив его из группы приложений, использующих значения по умолчанию.
  7. Но в звонилке метка не обновляется.

Пожалуйста, предложите, как я могу изменить метку (вызов API и получение некоторых деталей, которые я устанавливаю как обновленную метку), когда есть входящий вызов.


person rir    schedule 12.06.2018    source источник


Ответы (1)


То, что вы запрашиваете, не поддерживается расширением CallDirectory. Напротив, все телефонные номера, которые вы хотите идентифицировать/заблокировать, должны быть предоставлены заранее, чтобы ОС могла их сопоставить и идентифицировать.

Это означает, что когда телефон звонит, если номер не совпадает с контактами пользователя, ОС запрашивает расширение CallDirectory. Если телефон уже добавлен, он совпадает.

Из того, что я понимаю под вашей имплементацией, вы получите обновленную метку, но для последующих входящих вызовов (возможно), но точно не текущую.

person Jimi    schedule 10.01.2019