だから私はこの1つに困っています。iPhoneアドレス帳APIから「Me」カードを取得する方法はありますか?
Mac OS Xでは、内蔵のアドレス帳APIから「Me」カード(Mac /アカウントの所有者)を簡単に取得できます。
誰かがiPhoneの所有者に属する連絡先(存在する場合)を見つける方法を見つけましたか?
だから私はこの1つに困っています。iPhoneアドレス帳APIから「Me」カードを取得する方法はありますか?
Mac OS Xでは、内蔵のアドレス帳APIから「Me」カード(Mac /アカウントの所有者)を簡単に取得できます。
誰かがiPhoneの所有者に属する連絡先(存在する場合)を見つける方法を見つけましたか?
あなたは文書化されていないユーザーのデフォルトを使用することができます:
[[NSUserDefaults standardUserDefaults] objectForKey:@"SBFormattedPhoneNumber"];
をして、その電話番号とカードのアドレス帳を検索する時にそれのための要求を提出してください。
ユーザーデフォルトが文書化されていないため、いつでもAppleが変更される可能性があり、App Storeにアクセスできない可能性があることに注意してください。
もう1つのアプローチは、はるかに脆弱ですが、デバイス名を調べることです。ユーザーがデフォルトの「ユーザー名のiPhone」から変更しておらず、実際の名前をiPhoneとして使用している場合は、そのユーザー名を取得できます。繰り返しますが、決して最良の解決策ではありませんが、それはあなたに何か他のことを試してもらえません。
この質問に対する一般的に受け入れられる回答は、この機能のためにAppleにレーダーを提出し、ユーザーにカードを選択させることです。
iPhone SDK 2.2.1以前にはこのようなAPIはありません。 http://bugreport.apple.com
編集:[廃止された解答]
ない「私」のカードが存在しないので、「私」のカードを取得するためのAPIはありません。 iPhoneの連絡先アプリにはカードが「私」であるとマークする方法はなく、APIにはこれが反映されています。
これは正確には当てはまりません。もちろん、連絡先アプリにはこれができませんが、設定>メール、連絡先、カレンダー>自分の情報で自分の「私」カードを設定できます。 – LucasTizma
@ルーカス・ティズマ:上記の答えは、あなたがそれに反応する約3年前に書かれたものです。当時は正解でしたが、もちろん物事は変わります。 –
ああ、私はあなたがそれに答えた日に気付かなかった。それについて申し訳ありません! – LucasTizma
私は、デバイスが最初に呼び出された英語で
NSString *ownerName = [[UIDevice currentDevice] name];
を次のようにデバイス名を取得することができ、この
への部分的な解決策を思い付いた、例えば、「ジョーBloggのiPhoneの
あなたは、その名前を取ることができ
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