I want to get IMEI on iPhone. I try to use the following code:
#import \"Message/NetworkController.h\"
NetworkController *ntc=[[NetworkController sharedInstance] autorelease];
NSString *imeistring = [ntc IMEI];
But NetworkController is not found.
I also find that I can get uniqueIdentifier using:
UIDevice *myDevice = [UIDevice currentDevice];
NSString *identifier = myDevice.uniqueIdentifier;
But this cannot help me to get IMEI.
Any suggestion about how to get IMEI on iPhone?
I found that erica had posted the header file \"Message/NetworkController.h\" on ericasadun.com.
http://ericasadun.com/iPhoneDocs300/_network_controller_8h-source.html (It\'s been removed now)
I created a header file, copy and paste the NetworkController.h file into it and add the private framework \"Message.framework\" to my project, import the header file I created.
Now I can use the original method I found to get the imei number.
NetworkController *ntc = [NetworkController sharedInstance];
NSString *imeistring = [ntc IMEI];
[EDITED] Doesn\'t work anymore. App will be rejected by Apple. Instead you will have to use UDID. See post below.
You can\'t find the IMEI programmatically on the iPhone.
There is no official way to get it, but in Apples private framework CoreTelephony.framework
there is a method CTGetIMEI
that might help you.
I\'m sure there are reasons you can\'t do this easily. Auto-unlocker app? I don\'t think so. I\'m sure Apple and AT&T wouldn\'t like it too much either.
*#06# is the way to get it manually.
add a head file \"CoreTelephony.h\" to your project
CoreTelephony.h
struct CTServerConnection
{
int a;
int b;
CFMachPortRef myport;
int c;
int d;
int e;
int f;
int g;
int h;
int i;
};
struct CTResult
{
int flag;
int a;
};
struct CTServerConnection * _CTServerConnectionCreate(CFAllocatorRef, void *, int *);
void _CTServerConnectionCopyMobileIdentity(struct CTResult *, struct CTServerConnection *, NSString **);
add the following code to your class
#import \"CoreTelephony.h\"
struct CTServerConnection *sc=NULL;
struct CTResult result;
void callback() { }
now, you can get imei easily
NSString *imei;
_CTServerConnectionCopyMobileIdentity(&result, sc, &imei);
I made a search only here in stackoverflow and the conclusion is that Apple dont allow anymore to find phone EMEI after iOS 6.
You can identify a device using UDID.
I found my answer here https://stackoverflow.com/a/19927376/2283308