我的iOS应用程序使用代码
从设备中提取联系人[[CNContactStore new] requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError *error) {
if (granted) {
NSArray *keys = @[CNContactNamePrefixKey,
CNContactGivenNameKey,
CNContactMiddleNameKey,
CNContactFamilyNameKey,
// ...
NSString *containerId = store.defaultContainerIdentifier;
NSPredicate *predicate = [CNContact predicateForContactsInContainerWithIdentifier:containerId];
NSArray *cnContacts = [store unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&error];
for (CNContact *contact in cnContacts) {
// contacts fetching
}
}
}];
CNContact类有一些值意味着联系人在设备上的收藏夹中(在电话应用程序中)?我在CNContact键中找不到这样的键。
或者谓词包含我需要的键?
答案 0 :(得分:2)
收藏夹存储在Phone.app中,而不是存储在地址簿数据库本身内。你无法在非越狱的iPhone上访问其他应用程序的沙箱,所以不幸的是答案是否定的。
此外,如果任何应用可以看到您最喜欢的联系人,那么隐私将会非常糟糕。它已经很糟糕,它可以在不问你的情况下访问整个地址簿。