2016-05-11 2 views
5

Я пытаюсь получить идентификатор вызывающего абонента (номер телефона) во время входящего вызова. TrueCaller реализовал это, и они получили номер телефона входящего звонящего.Получить номер телефона вызывающего абонента из входящего вызова на iPhone

Я нашел эту информацию: 1. CoreTelephony Framework (Он дает только вызывающие состояния) 2. Обновление от Apple 9.0: синхронизация контактов «Может быть». с почтовым приложением и обнаруживает входящий номер телефона.

+0

Идентификатор вызывающего абонента работает только с джейлбрейковыми устройствами ... –

+1

Истинный абонент не получает идентификатор вызывающего абонента. Скорее они добавляют известные номера спама контакту в телефонной книге, и этот контакт имеет изображение «спама» – Paulw11

+0

Да, но проверьте их последнее обновление. Они внедрили эту вещь, также опубликовали вступительное сообщение на своем веб-сайте .https: //www.truecaller.com/articles/iphone –

ответ

6

### EDIT ###

IOS 10 и выше:

Использование Callkit, обратите внимание на расширение каталога вызова

Согласно документации,

Определение входящего калибра lers

Когда телефон получает входящий звонок, система сначала обращается к контактам пользователя, чтобы найти соответствующий номер телефона. Если совпадение не найдено, система затем обращается к расширению Call Directory для вашего приложения, чтобы найти соответствующую запись для идентификации номера телефона. Это полезно для приложений, которые поддерживают список контактов для пользователя, который отделен от системных контактов, таких как социальная сеть, или для идентификации входящих вызовов, которые могут быть инициированы из приложения, например, для поддержки обслуживания клиентов или уведомления о доставке ,

Например, рассмотрите пользователя, который дружит с Джейн в приложении для социальных сетей, но не имеет номера своих телефонов в своих контактах. Приложение социальной сети имеет расширение Call Directory Extension, которое загружает и добавляет номера телефонов всех друзей пользователя. Из-за этого, когда пользователь получает входящий звонок от Jane, система отображает что-то вроде «(имя приложения) Caller ID: Jane Appleseed», а не «Unknown Caller».

Чтобы предоставить идентифицирующую информацию о входящих абонентах, вы используете метод addIdentificationEntry (withNextSequentialPhoneNumber: label :) в реализации beginRequest (с :).

class CustomCallDirectoryProvider: CXCallDirectoryProvider { 
    override func beginRequest(with context: CXCallDirectoryExtensionContext) { 
     let labelsKeyedByPhoneNumber: [CXCallDirectoryPhoneNumber: String] = [ … ] 
     for (phoneNumber, label) in labelsKeyedByPhoneNumber.sorted(by: <) { 
      context.addIdentificationEntry(withNextSequentialPhoneNumber: phoneNumber, label: label)   
     } 

     context.completeRequest() 
    } 
} 

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

IOS, 9 и более ранние версии:

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

И дам вам некоторые выводы о том, как истинный абонент работает,

  1. Ее не читает историю звонков, они фактически создали Action extension, где бы вы пытаетесь разделить контакт, он будет отображать TrueCaller расширение приложения, которые кодируются для показа контакта детали сгружен с их сервера

  2. Вы также можете запутаться с нажимным полученным уведомлением за несколько звонков, говоря «Некоторые Х зовут вас». Здесь truecaller использовал трюк. Если вы заметили ясно, что push-уведомление будет получено только тогда, когда вы получите звонок от пользователя android с установленным truecaller. Пусть мне объяснить вам в деталях,

X (Android пользователь с TrueCaller установлен), вызов Y (ИОС пользователь с TrueCaller установлен), андроид версия уведомляет сервер, что X делает вызов Y. И сервер будет отправьте push-уведомление на iPhone Y.

+0

, но truecaller предоставляет информацию о входящем вызове в закладке вызова truecaller приложение –

+0

как это работает ... помогите мне –

+0

@SaurabhJain Получаете ли вы все входящие звонки внутри приложения truecaller? – KingofBliss

1

Идентификатор вызывающего абонента невозможен на неустановленных устройствах.

Однако есть один способ, в котором вы можете узнать, какой пользователь звонит, но не уверен, что он вам будет полезен.

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

Помимо этого, в настоящее время нет другого способа узнать идентификатор вызываемого абонента.

+0

Спасибо Kakshil, но, пожалуйста, проверьте приложение «TrueCaller».Они получают доступ к журналу звонков и номер входящего вызова (я думаю). Они выпустили последнюю версию с 9 мая по 2016.https: //itunes.apple.com/in/app/truecaller-number-search-spam/id448142450? Mt = 8 –