Расширение каталога вызовов CallKit не распознает номера, содержащие более 9 цифр.

Я работаю с CallKit и разрабатываю приложение с расширением каталога вызовов. Я следовал этому руководству и сейчас тестирую возможности идентификационных номеров, которых у пользователя нет в его контактах, и показывает идентификатор из моего приложения, но, хотя он отлично работает с числами от 1 до 9 цифр, например 123456, когда я устанавливаю числа с 10 или более цифрами, iOs не не узнаю номер. Полтора дня гуглил, никакой информации по этому поводу не нашел. Если кто-нибудь может мне помочь, я буду признателен. Заранее спасибо.

Способ установки телефонных номеров для распознавания:

private func addAllIdentificationPhoneNumbers(to context: CXCallDirectoryExtensionContext) {
        // Retrieve phone numbers to identify and their identification labels from data store. For optimal performance and memory usage when there are many phone numbers,
        // consider only loading a subset of numbers at a given time and using autorelease pool(s) to release objects allocated during each batch of numbers which are loaded.
        //
        // Numbers must be provided in numerically ascending order.

        let allPhoneNumbers: [CXCallDirectoryPhoneNumber] = [ 123456789, 1_888_555_5555 ]
        let labels = [ "ID test", "Local business" ]

        for (phoneNumber, label) in zip(allPhoneNumbers, labels) {
            context.addIdentificationEntry(withNextSequentialPhoneNumber: phoneNumber, label: label)
        }
    }

С помощью этого кода, когда я имитирую вызов с номером 123456789, iOS показывает тег «ID test», и это правильно, но если я добавлю любую цифру, например 0 в конце: 1234567890, iOS ничего не показывает, когда я имитировать вызов. Я не знаю, упускаю ли я что-то.


person Daniel Gonzáles    schedule 14.09.2018    source источник
comment
Я предполагаю, что числа в вашем вопросе являются просто примерами, но вы должны убедиться, что добавляете числа в порядке возрастания; поэтому 612123456789 нужно добавить после 612123456780   -  person Paulw11    schedule 14.09.2018
comment
Привет Paulw11. Верно, это те номера, которые я использовал для имитации звонков, и я позаботился о том, чтобы расположить их в порядке возрастания. Итак, я думаю, что 1234567890 все еще предшествует 18885555555.   -  person Daniel Gonzáles    schedule 16.09.2018
comment
Тогда я не уверен. Мое приложение загружает стандартные 12-значные номера e.164 в соответствии с моим предыдущим комментарием, и они работают.   -  person Paulw11    schedule 16.09.2018
comment
Ну, до сих пор я видел, что с 10- и 11-значными числами это не работает, но работает с 9- и 12-значными числами. Я не имею понятия почему   -  person Daniel Gonzáles    schedule 17.09.2018
comment
Возможно, цифры не совпадают. Возможно, то, что вы используете для подделки вызывающего абонента, неправильно отправляет 10- или 11-значные числа.   -  person Paulw11    schedule 17.09.2018


Ответы (1)


Ну, после кучи тестов я смог заставить его работать. Дело в том, что телефон должен содержать полный код страны и код города. Так, например, 00_52_55_4567_8932 877 или +52_55_4567_8932 оба будут работать. А вот 55_4567_8932 и 4567_8932 не подойдут. Я надеюсь, что это может помочь кому-то еще в будущем. Спасибо вам всем!

person Daniel Gonzáles    schedule 03.10.2018