2016-07-05 84 views
8

Requisito: Sto salvando alcuni contatti nell'iPhone dell'utente insieme a un'immagine (dimensioni uguali a quelle del dispositivo). Voglio che questa immagine venga visualizzata su FULLSCREEN ogni volta che il contatto chiama su quel dispositivo.Salvataggio di un'immagine come immagine del contatto e visualizzazione durante la chiamata in entrata

Notato Esempio:Truecaller iOS applicazione mostra come immagine di rosso quando il chiamante è identificati come spam

Codice: Questo è il codice che ho usato per salvare i dati dei contatti. Sto usando Contacts.framework

CNMutableContact *newContact = [CNMutableContact new]; 

newContact.imageData = UIImagePNGRepresentation([UIImage imageNamed:@"blue_bg.png"]); 

newContact.contactType = CNContactTypePerson; 
newContact.givenName = user.firstName; 
newContact.middleName = user.middleName; 
newContact.familyName = user.lastName; 

NSArray *numbers = [[NSArray alloc] initWithArray:@[[CNLabeledValue labeledValueWithLabel:@"Main" value:[CNPhoneNumber phoneNumberWithStringValue:user.mobileNumber.stringValue]]]]; 

newContact.phoneNumbers = numbers; 

CNContactStore *store = [CNContactStore new]; 
CNSaveRequest *saveReq = [CNSaveRequest new]; 

[saveReq addContact:newContact toContainerWithIdentifier:nil]; 

NSError *error = nil; 
[store executeSaveRequest:saveReq error:&error]; 

if (error) { 
    NSLog(@"Contact Save ERROR: %@", error.localizedDescription); 
} 

Scenario attuale: sto ottenendo questa immagine in iOS Contacts App ma non è visualizzato quando l'utente richiama su iPhone. Come funziona Truecaller? Cosa mi manca qui?

+0

Uno di mia app ho fatto lo stesso in rapida: lasciare che il contatto = CNMutableContact() immagine let: UIImage = UIImage (imageLiteral: "cat.png") se lasciare imageData: NSData = UIImagePNGRepresentation (immagine) { contatto .imageData = imageData // L'immagine del profilo come oggetto NSData } –

+0

@SaRaVaNaNDM: Ho fatto la stessa cosa in ObjC. Stavi ottenendo il risultato desiderato (immagine del chiamante a schermo intero)? – Nishant

+0

Sì, sto ricevendo. Immagino il suo problema con iOS, a volte non mostrerà l'immagine. –

risposta

0

Se l'immagine viene visualizzata nell'app Contatti, questa dovrebbe essere visualizzata quando viene chiamato da quella persona.

+0

Dovrebbe succedere ma non lo è. Vengono visualizzate solo le iniziali del nome del contatto quando si riceve una chiamata. Non sono sicuro di dove sto andando male con questa cosa semplice. Hai del codice che funziona? – Nishant

+0

Da un altro sito Web: "Dipende da dove hai selezionato l'immagine: solo le immagini selezionate dal Rullino fotografico verranno visualizzate a schermo intero." quindi probabilmente dovrai modificare qualcosa nel tuo codice per farlo funzionare. –

+0

Ho letto di questo prima, proverò a risolvere questo. Ma come fa l'app Truecaller a farlo? – Nishant