2016-07-05 27 views
8

Wymagania: Zapisuję niektóre kontakty w telefonie iPhone użytkownika wraz z obrazem (wymiary takie same jak w urządzeniu). Chcę, aby to zdjęcie było wyświetlane w trybie FULLSCREEN, gdy kontakt wywoła to urządzenie.Zapisywanie obrazu jako Zdjęcie kontaktu i wyświetlanie go podczas połączenia przychodzącego

Noticed Przykład:Truecaller iOS aplikacja pokazuje jak czerwony obraz, gdy rozmówca jest zidentyfikowane jako spam

Kod: Jest to kod użyłem, aby zapisać dane kontaktów. Używam 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); 
} 

Obecny scenariusz: otrzymuję ten obraz w iOS Contacts App ale nie jest wyświetlany, gdy użytkownik, który wzywa iPhone. Jak działa Truecaller? Czego tu mi brakuje?

+0

Jeden z moich aplikacji i zrobił to samo w SWIFT: niech kontaktów = CNMutableContact() let image: UIImage = UIImage (imageLiteral: "cat.png") razie niech imageData: NSData = UIImagePNGRepresentation (image) { kontakt .imageData = imageData // Obraz profilowy jako obiekt NSData } –

+0

@SaRaVaNaNDM: Zrobiłem to samo w ObjC. Czy uzyskałeś pożądany wynik (obraz na pełnym ekranie)? – Nishant

+0

Tak, dostaję. Chyba jego problem z systemem iOS, czasami nie wyświetla obrazu. –

Odpowiedz

0

Jeśli obraz pojawi się w aplikacji Kontakty, powinien pojawić się, gdy zostanie wywołana przez tę osobę.

+0

To powinno się dziać, ale tak nie jest. Podczas połączenia przychodzącego wyświetlane są tylko inicjały nazw kontaktów. Nie jestem pewien, czy źle zrobię z tą prostą rzeczą. Czy masz jakiś działający kod? – Nishant

+0

Z innej strony internetowej: "Zależy od miejsca, w którym wybrano zdjęcie: tylko zdjęcia wybrane z rolki aparatu będą wyświetlane na pełnym ekranie." więc prawdopodobnie będziesz musiał zmienić kod w swoim kodzie, aby działał. –

+0

Już o tym czytałem, spróbuję to obejść. Ale jak działa aplikacja Truecaller? – Nishant