如何在iPhone上获得IMEI?

我想在iPhone上获得IMEI。 我尝试使用下面的代码:

#import "Message/NetworkController.h" NetworkController *ntc=[[NetworkController sharedInstance] autorelease]; NSString *imeistring = [ntc IMEI]; 

但是找不到NetworkController。

我也发现,我可以得到uniqueIdentifier使用:

 UIDevice *myDevice = [UIDevice currentDevice]; NSString *identifier = myDevice.uniqueIdentifier; 

但是这不能帮助我获得IMEI。

任何关于如何在iPhone上获得IMEI的build议?

我发现erica在ericasadun.com上发布了头文件“Message / NetworkController.h”。 http://ericasadun.com/iPhoneDocs300/_network_controller_8h-source.html (现已删除)

我创build了一个头文件,复制并粘贴NetworkController.h文件,并将私有框架“Message.framework”添加到我的项目中,导入我创build的头文件。

现在我可以使用我发现的原始方法来获取imei数字。

 NetworkController *ntc = [NetworkController sharedInstance]; NSString *imeistring = [ntc IMEI]; 

[编辑]不再工作。 应用程序将被苹果拒绝。 相反,你将不得不使用UDID。 见下面的post。

您无法在iPhone上以编程方式findIMEI。

有没有官方的方式来获得它,但在苹果私人框架CoreTelephony.framework有一个方法CTGetIMEI可能会帮助你。

我相信有一些原因,你不能轻易做到这一点。 自动解锁程序的应用程序? 我不这么认为。 我相信苹果和AT&T也不会太喜欢它。

*#06#是手动获取它的方法。

将头文件“CoreTelephony.h”添加到您的项目中

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 **); 

将以下代码添加到您的类中

 #import "CoreTelephony.h" struct CTServerConnection *sc=NULL; struct CTResult result; void callback() { } 

现在,你可以轻松得到imei

  NSString *imei; _CTServerConnectionCopyMobileIdentity(&result, sc, &imei); 

我只是在这里进行search,结果是,苹果不允许再findiOS 6之后的手机EMEI。

您可以使用UDID识别设备。 我在这里find我的答案https://stackoverflow.com/a/19927376/2283308