그래서 나는이 하나에 난처합니다.iPhone 주소록 API에서 "Me"카드를 가져 오는 방법이 있습니까?
Mac OS X에는 내장 주소록 API에서 "Me"카드 (Mac/계정의 소유자)를 쉽게 얻을 수있는 방법이 있습니다.
누구든지 iPhone 소유자에게 속한 연락처 (있는 경우)를 찾는 방법을 찾았습니까?
그래서 나는이 하나에 난처합니다.iPhone 주소록 API에서 "Me"카드를 가져 오는 방법이 있습니까?
Mac OS X에는 내장 주소록 API에서 "Me"카드 (Mac/계정의 소유자)를 쉽게 얻을 수있는 방법이 있습니다.
누구든지 iPhone 소유자에게 속한 연락처 (있는 경우)를 찾는 방법을 찾았습니까?
당신은 문서화되지 않은 사용자 기본을 사용할 수 있습니다 :
[[NSUserDefaults standardUserDefaults] objectForKey:@"SBFormattedPhoneNumber"];
을 한 후 해당 전화 번호를 카드에 주소록을 검색에서 이에 대한 요청을 제출하시기 바랍니다.
사용자 기본값이 문서화되어 있지 않기 때문에 언제든지 Apple을 변경할 수 있으며 App Store에 들어가는 데 어려움이있을 수 있습니다.
당신이 취할 수있는 또 다른 접근 방법은 훨씬 더 약하지만 장치 이름을 보는 것입니다. 사용자가 기본 "사용자 이름의 iPhone"에서 변경하지 않고 실제 이름을 iPhone으로 사용하고 있다면 사용자 이름을 그 이름에서 가져올 수 있습니다. 다시 말하지만, 어떤 방법으로도 최선의 해결책은 아니지만, 시도해 볼만한 것이 있습니다.
이 질문에 대한 일반적으로 받아 들여지는 대답은이 기능에 대한 레이더를 Apple에 제출하고 사용자가 카드를 선택하도록하는 것입니다.
이렇게하기 위해 스토어에서 앱을 거부했습니다. 어쨌든 신뢰할 수 없습니다. 사용자가 다른 휴대 전화 통신 회사의 전화 번호를 이식하면이 호출은 잘못된 결과를 거의 확실하게 나타냅니다. –
도움을 주셔서 감사합니다. 이 질문을 게시 한 후 SBFormattedPhoneNumber 접근법에 대해 생각해 봅니다. 그것은 "안전한"미래의 증명 방법으로 쉽게 구현 될 수 있지만, 애플은 여러 가지 이유로 이것을 낙담시킬지도 모른다고 들린다. 또한, Tom, 머리를 가져 주셔서 감사합니다. – amattn
더 이상 값을 반환하지 않습니다. – Brian
iPhone SDK 2.2.1 및 이전 버전에는 이러한 API가 없습니다. http://bugreport.apple.com
편집 : [폐기 대답]에는 "나"카드가 없기 때문에 "나"카드를 얻기위한 API가 없습니다
. iPhone의 연락처 앱은 카드를 "나"로 표시 할 수있는 방법이 없으며 API가이를 반영합니다.
이것은 사실이 아닙니다. 물론 주소록 앱은이 작업을 수행 할 방법이 없지만 설정> 메일, 연락처, 캘린더> 내 정보에서 '나'카드를 설정할 수 있습니다. – LucasTizma
@ LucasTizma : 위의 대답은 당신이 그것에 반응하기 거의 3 년 전에 작성되었습니다. 당시로서는 정확했지만 물론 사물이 바뀌 었습니다. –
아, 나는 당신이 그 날짜에 응답하지 않은 것을 알았습니다. 미안합니다! – LucasTizma
나는 예를 들어, 장치가 원래라고 영어로
NSString *ownerName = [[UIDevice currentDevice] name];
을 다음과 같이 장치 이름을 얻을 수있는이
에 대한 부분적인 해결책을했다, '조 Blogg의 아이폰
당신이 그 이름을 취할 수
NSRange t = [ownerName rangeOfString:@"’s"];
if (t.location != NSNotFound) {
ownerName = [ownerName substringToIndex:t.location];
}
이름 밖으로 휴식 및 연락처 검색
CNContactStore * contactStore = [CNContactStore new];
NSPredicate *usersNamePredicate = [CNContact predicateForContactsMatchingName:usersName];
NSArray * keysToFetch = @[[CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName],CNContactPhoneNumbersKey,CNContactEmailAddressesKey,CNContactSocialProfilesKey, ];
NSArray * matchingContacts = [contactStore unifiedContactsMatchingPredicate:usersNamePredicate keysToFetch:keysToFetch error:nil];
물론 다른 언어는 장치 이름 문자열이 다릅니다. 'iPhone Von Johann Schmidt'는 다른 언어를 위해 더 많은 구문 분석이 필요하며 사용자가 iTunes의 장치 이름을 "Joes phone"과 같은 것으로 변경하지 않은 경우에만 작동하지만 시작 지점을 제공합니다.
잘 ... 그것은 당신에게 일치하는 항목의 배열을 제공합니다 :) 그래서 그 배열과 하나 이상의 연락처가 있다면 당신은 단지 냄비를 사용하고 첫 번째와 함께 가야하거나 여러 카드를 통해 일하고 당신이 필요로하는 걸 각각에서.
나는 그것에게 부분적인 해결책을 말 했는가하고 모든 사용자의 경우에 작동하지 않습니다 비록 당신은 @wilshipley에 따라, 사용자의 많은 작품과
분명히 약간의 마찰을하지 감소 찾을 수 있습니다 : HTTP : //twitter.com/wilshipley/status/1369679612 –
Mac에서 어떻게 카드를 찍을 수 있습니까? – Johnykutty
@Johnykutty 매버릭스에서 카드를 선택한 다음 ** 카드> 내 카드 만들기 ** 메뉴 항목을 사용하십시오. – bneely