### EDIT ###
iOS 10 e sopra:
Usa Callkit, un'occhiata a un'estensione directory chiamata
Secondo la documentazione,
Identificazione Cal In arrivo
Quando un telefono riceve una chiamata, il sistema consulta prima i contatti dell'utente per trovare un numero di telefono corrispondente. Se non viene rilevata una corrispondenza, il sistema consulta l'estensione di Directory chiamate della tua app per trovare una voce corrispondente per identificare il numero di telefono. È utile per le applicazioni che gestiscono un elenco di contatti per un utente separato dai contatti di sistema, ad esempio un social network, o per identificare le chiamate in arrivo che possono essere avviate dall'interno dell'app, ad esempio per l'assistenza clienti o una notifica di consegna .
Ad esempio, considerare un utente che è amico di Jane in un'app di social networking, ma non ha il suo numero di telefono nei suoi contatti. L'app di social networking ha un'estensione della Rubrica, che scarica e aggiunge i numeri di telefono di tutti gli amici dell'utente. Per questo motivo, quando l'utente riceve una chiamata in arrivo da Jane, il sistema visualizza qualcosa come "(Nome app) ID chiamante: Jane Appleseed" anziché "Chiamante sconosciuto".
Per fornire informazioni di identificazione sui chiamanti in entrata, si utilizza il metodo addIdentificationEntry (withNextSequentialPhoneNumber: label :) nell'implementazione di beginRequest (con :).
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()
}
}
Poiché questo metodo viene chiamato solo quando il sistema lancia l'estensione per app e non per ogni singola chiamata, è necessario specificare le informazioni sulla chiamata di identificazione tutto in una volta; non è possibile, ad esempio, effettuare una richiesta a un servizio Web per trovare informazioni su una chiamata in arrivo.
iOS 9 e precedenti:
Come accennato Kakshil, ID chiamante non è possibile su dispositivi non jailbroken.
E io vi darò alcuni risultati su come vero chiamante funziona,
La sua non è la lettura della cronologia delle chiamate, in realtà creato Action extension, ovunque si tenta di condividere un contatto, questo verrà visualizzato TrueCaller estensione app, che codifica per mostrare il contatto dettagli prelevati dal loro server
Si potrebbe anche confondersi con notifica push ricevuto per qualche chiamate, dicendo "Alcuni X ti chiama". È qui che il truecaller ha usato un trucco. Se hai notato con chiarezza , la notifica push verrà ricevuta solo quando ricevi una chiamata da un utente Android con truecaller installato. Lasciate mi spiego in dettaglio,
X (utente Android con TrueCaller installato), chiamando Y (utente ios con TrueCaller installato), la versione Android notificare il server che X si effettua una chiamata al server di Y. E sarà invia una notifica push all'iPhone di Y.
ID chiamante funziona solo su dispositivi jailbroken ... –
Il vero chiamante non ottiene l'id del chiamante. Piuttosto, aggiungono numeri spam noti a un contatto nella rubrica e questo contatto ha l'immagine "spam" – Paulw11
Sì, ma controlla il loro ultimo aggiornamento. Hanno implementato questa cosa anche pubblicato il messaggio introduttivo sul loro sito Web all'indirizzo.https: //www.truecaller.com/articles/iphone –