2016-06-29 43 views
7

Come ottenere il numero di telefono di chiamata in arrivo utilizzando il framework kit chiamate. ho provato con la classe cxcallobserver ma non uso.come ottenere il numero di chiamata in arrivo utilizzando il callkit

Eventuali suggerimenti più utili ...

+1

callKit ancora in versione beta e non è disponibile una panoramica finale, quindi attendere la versione finale. –

+1

Hi Nitin È possibile utilizzando il callkit. Se possibile aspetterò la versione finale. –

risposta

9

Quando si utilizza Call CallKit blocco & funzione Identificazione (nuovo in iOS 10), i numeri di telefono da bloccare o identificati sono caricati, per estensione, chiamata Directory della propria applicazione prima di una chiamata in arrivo e i numeri di telefono sono memorizzati dal sistema. Quindi, quando arriva una chiamata in entrata, questi dati memorizzati vengono consultati dal sistema e una chiamata in arrivo può essere bloccata o identificata nell'interfaccia utente della chiamata in arrivo con l'etichetta fornita.

Per motivi di privacy e prestazioni, le estensioni per app della Directory chiamate non vengono avviate quando arrivano le chiamate in entrata e un'estensione per app non può recuperare il numero di telefono per una chiamata in arrivo.

+0

Penso che tu abbia ragione. –

+3

Se questo è vero, allora è praticamente inutile come ID chiamante. Un'app non può sapere in anticipo chi sta per chiamare! Deve essere runtime. – Sarang

+0

Come truecaller trova la chiamata in arrivo? –

1

L'estensione Directory chiamate introdotta in iOS 10 funziona come l'estensione Safari Content Blocker introdotta in iOS 9. L'estensione deve fornire un elenco di numeri di telefono (nell'estensione di Safari, era un file JSON), questi numeri verrà memorizzato da iOS e, nel caso di una chiamata in arrivo, il sistema controlla l'elenco fornito dal tuo interno (lo stesso di Safari controllerebbe le regole specificate dal file JSON prima di caricare un sito Web), a condizione che l'estensione sia attiva a quel tempo.

Quindi, l'utilizzo di questa funzione per la creazione di un'ID chiamante come l'app non è possibile, perché le cose non sono dinamiche. Inoltre, potrebbe esserci un limite al numero di numeri di telefono che è possibile fornire nell'elenco, che si spera siano annunciati dalla versione di iOS 10.

+0

Hai il codice che ho puoi usare .. o qualsiasi riferimento dove posso trovare del codice su questo! –

+0

Qualche parola sul limite dei numeri? Inoltre, sai quando e quanto spesso viene eseguita l'estensione per aggiungere nuovi numeri? Che dire della rimozione di numeri aggiunti in precedenza? –

+1

@ChrisWagner A partire da ora, nulla sul limite è stato dichiarato sul sito web dello sviluppatore. Per rimuovere i numeri, ho recuperato tutti i numeri in una struttura dati, rimosso il numero e quindi salvato di nuovo tutti i numeri. La frequenza dell'aggiornamento dipende anche da iOS, tuttavia è possibile forzare l'aggiornamento utilizzando: [[CXCallDirectoryManager sharedInstance] reloadExtensionWithIdentifier: EXTENSION_IDENTIFIER completionHandler:^(NSError * _Nullable error) {// la tua completa eliminazione}]; –