如何在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