2016-09-12 1 views
1

Mein iOS-Anwendung holt Kontakte von GerätecodeWie kann ich feststellen, dass CNContact Favoriten ist?

[[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 
    } 
    } 
}]; 

Hat CNContact Klasse mit einigem Wert bedeutet, dass der Kontakt in Favoriten auf dem Gerät (in Telefonanwendung) ist? Ich habe einen solchen Schlüssel in den CNContact-Tasten nicht gefunden.

Oder vielleicht Prädikat enthält Schlüssel, die ich brauche?

Antwort

2

Filip Radelic beantwortet gleiche question:

Favoriten sind in Phone.app gespeichert, nicht in der Adressbuch-Datenbank selbst. Sie können nicht auf die Sandbox einer anderen App auf einem iPhone ohne Jailbreak zugreifen, daher lautet die Antwort leider nein.

Auch wäre es ziemlich schlecht für die Privatsphäre, wenn eine App Ihre Lieblings-Kontakte sehen könnte. Es ist schon schlimm, dass es auf das gesamte Adressbuch zugreifen kann, ohne Sie zu fragen.

Verwandte Themen