Programmatically get own phone number in iOS

Programmatically get own phone number in iOS

Is there any way to get own phone number by standard APIs from iPhone SDK?

Count the number of times a method is called in Cocoa-Touch?


Scrolling to range in UITextView
At the risk of getting negative marks, I want to suggest that the highest ranking solution (currently the first response) violates the latest SDK Agreement as of Nov 5, 2009.

should we need to release viewcontroller's object after pushing into navigation controller?
Our application was just rejected for using it.

scrollview scrolls smooth in simulator but not in device?
Here's the response from Apple:.
Can we run Java applictions on iPhone? [closed]
"For security reasons, iPhone OS restricts an application (including its preferences and data) to a unique location in the file system.

What's a Java alternative to Google App Engine for developing iPhone Push Notification services?
This restriction is part of the security feature known as the application's "sandbox." The sandbox is a set of fine-grained controls limiting an application's access to files, preferences, network resources, hardware, and so on."

The device's phone number is not available within your application's container.

Running JavaScript in a UIWebView before any other JavaScript is run
You will need to revise your application to read only within your directory container and resubmit your binary to iTunes Connect in order for your application to be reconsidered for the App Store.

This was a real disappointment since we wanted to spare the user having to enter their own phone number..
UIScrollView image/photo viewer with paging enabled and zooming


No, there's no way to do this..


Just to expand on an earlier answer, something like this does it for me:.
NSString *num = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"]; 
Note: This retrieves the "Phone number" that was entered during the iPhone's iTunes activation and can be null or an incorrect value.

It's NOT read from the SIM card.. At least that does in 2.1.

There are a couple of other interesting keys in NSUserDefaults that may also not last.

(This is in my app which uses a UIWebView).
WebKitJavaScriptCanOpenWindowsAutomatically NSInterfaceStyle TVOutStatus WebKitDeveloperExtrasEnabledPreferenceKey 
and so on.. Not sure what, if anything, the others do.. Update: capability appears to have been removed by Apple on or around iOS 4.


As you probably all ready know if you use the following line of code, your app will be rejected by Apple .
NSString *num = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"]; 
here is a reference. you can use the following information instead.
NSString *phoneName = [[UIDevice currentDevice] name];  NSString *phoneUniqueIdentifier = [[UIDevice currentDevice] uniqueIdentifier]; 
and so on.
@property(nonatomic,readonly,retain) NSString    *name;              // e.g. 

"My iPhone" @property(nonatomic,readonly,retain) NSString *model; // e.g.

@"iPhone", @"iPod Touch" @property(nonatomic,readonly,retain) NSString *localizedModel; // localized version of model @property(nonatomic,readonly,retain) NSString *systemName; // e.g.

@"iPhone OS" @property(nonatomic,readonly,retain) NSString *systemVersion; // e.g.

@"2.0" @property(nonatomic,readonly) UIDeviceOrientation orientation; // return current device orientation @property(nonatomic,readonly,retain) NSString *uniqueIdentifier; // a string unique to each device based on various hardware info.

Hope this helps!.


Using Private API you can get user phone number on the following way:.
extern NSString* CTSettingCopyMyPhoneNumber();   +(NSString *) phoneNumber { NSString *phone = CTSettingCopyMyPhoneNumber();  return phone; } 
Also include CoreTelephony.framework to your project.



To get you phone number you can read a plist file.

It will not work on non-jailbroken iDevices:.
NSString *commcenter = @"/private/var/wireless/Library/Preferences/";     NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:commcenter];     NSString *PhoneNumber = [dict valueForKey:@"PhoneNumber"];     NSLog([NSString stringWithFormat:@"Phone number: %@",PhoneNumber]); 
I don't know if Apple allow this but it works on iPhones..


No official API to do it.

Using private API you can use following method:.
-(NSString*) getMyNumber {     NSLog(@"Open CoreTelephony");     void *lib = dlopen("/Symbols/System/Library/Framework/CoreTelephony.framework/CoreTelephony",RTLD_LAZY);     NSLog(@"Get CTSettingCopyMyPhoneNumber from CoreTelephony");     NSString* (*pCTSettingCopyMyPhoneNumber)() = dlsym(lib, "CTSettingCopyMyPhoneNumber");     NSLog(@"Get CTSettingCopyMyPhoneNumber from CoreTelephony");      if (pCTSettingCopyMyPhoneNumber == nil) {         NSLog(@"pCTSettingCopyMyPhoneNumber is nil");         return nil;     }     NSString* ownPhoneNumber = pCTSettingCopyMyPhoneNumber();     dlclose(lib);     return ownPhoneNumber; } 
It works on iOS 6 without JB and special signing.. As mentioned creker on iOS 7 with JB you need to use entitlements to make it working.. How to do it with entitlements you can find here: iOS 7: How to get own number via private API?.


You can ask the user and verficate it using sms.

Legally, no method for knows it..

94 out of 100 based on 44 user ratings 1294 reviews