如何在iPhone上获取IMEI?
-
05-07-2019 - |
题
我想在iPhone上获取IMEI。我尝试使用以下代码:
#import "Message/NetworkController.h"
NetworkController *ntc=[[NetworkController sharedInstance] autorelease];
NSString *imeistring = [ntc IMEI];
但找不到NetworkController。
我还发现我可以使用:
获取uniqueIdentifierUIDevice *myDevice = [UIDevice currentDevice];
NSString *identifier = myDevice.uniqueIdentifier;
但这无法帮助我获得IMEI。
如何在iPhone上获取IMEI?
解决方案
你不能再在iPhone上获得IMEI了。您可能必须使用UDID。请参阅其他答案。
过去,您可以使用头文件“Message / NetworkController.h”。发布在ericasadun.com上。 http://ericasadun.com/iPhoneDocs300/_network_controller_8h-source.html (已被删除现在删除)
您可以添加NetworkController.h文件和私有框架“Message.framework”。到你的项目,然后导入该头文件使用我找到的原始方法来获取imei号码:
NetworkController *ntc = [NetworkController sharedInstance];
NSString *imeistring = [ntc IMEI];
黑客攻击不再适用。应用程序将被Apple拒绝。
其他提示
您无法在iPhone上以编程方式找到IMEI。
没有正式的方法来获取它,但在Apples私有框架 CoreTelephony.framework
中有一个方法 CTGetIMEI
可能对你有帮助。
我确信你有理由不能轻易做到这一点。自动解锁应用?我不这么认为。我相信Apple和AT& T也不会太喜欢它。
*#06#是手动获取它的方式。
我只在这里搜索了stackoverflow,结论是Apple不再允许在iOS 6之后找到手机EMEI。
您可以使用UDID识别设备。 我在这里找到了答案 https://stackoverflow.com/a/19927376/2283308
添加头文件“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);