将图像保存为联系人图片,并在来电时显示

时间:2016-07-05 17:06:30

标签: ios objective-c iphone contacts-framework

要求:我正在将一些联系人与图片一起保存到用户的iPhone中(尺寸与设备相同)。我希望每当联系人呼叫该设备时,都会在FULLSCREEN上显示此图片。

注意到示例: Truecaller当来电者被识别为垃圾邮件时,iOS应用会显示为红色图片

代码:这是我用来保存联系人数据的代码。我正在使用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);
}

当前场景:我在iOS Contacts App中收到此图片,但是当该用户在iPhone上调用时,它不会显示。 Truecaller是如何做到的?我在这里错过了什么?

1 个答案:

答案 0 :(得分:0)

如果图片显示在“通讯录”应用中,则该图片会在您被该人调用时显示。