Search code examples
iphoneobjective-ccocoacocoa-touchaddressbook

Is there any way to get the "Me" card from iPhone Address Book API?


So I'm stumped on this one.

In Mac OS X there is an easy way to get the "Me" card (the owner of the Mac/account) from the built-in address book API.

Has anyone found a way to find out which contact (if it exists) belongs to the owner of the iPhone?


Solution

  • You could use the undocumented user default:

    [[NSUserDefaults standardUserDefaults] objectForKey:@"SBFormattedPhoneNumber"];
    

    and then search the address book for the card with that phone number.

    Keep in mind that since the User Default is undocumented, Apple could change at any time and you may have trouble getting into the App Store.

    Another approach you could take, although it is much more fragile, is to look at the device name. If the user hasn't changed it from the default "User Name's iPhone" AND they are using their real name as an iPhone, you could grab the user name from that. Again, not the best solution by any means, but it does give you something else to try.

    The generally accepted answer to this question is to file a Radar with Apple for this feature and to prompt users to choose their card.