问题
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.
How to get IMEI on iPhone?
回答1:
You can't get IMEI on iPhone anymore. You may have to use UDID instead. See other answers.
In the past, you could use the header file "Message/NetworkController.h" posted on ericasadun.com. http://ericasadun.com/iPhoneDocs300/_network_controller_8h-source.html (It's been removed now)
You would add the NetworkController.h file and the private framework "Message.framework" to your project, then import that header file to use the original method I found to get the imei number:
NetworkController *ntc = [NetworkController sharedInstance];
NSString *imeistring = [ntc IMEI];
That hack doesn't work anymore. App will be rejected by Apple.
回答2:
You can't find the IMEI programmatically on the iPhone.
回答3:
There is no official way to get it, but in Apples private framework CoreTelephony.framework
there is a method CTGetIMEI
that might help you.
回答4:
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.
回答5:
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
回答6:
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);
来源:https://stackoverflow.com/questions/823181/how-to-get-imei-on-iphone