Как получить IMEI на iPhone? - PullRequest
21 голосов
/ 05 мая 2009

Я хочу получить IMEI на iPhone. Я пытаюсь использовать следующий код:

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

Но NetworkController не найден.

Я также обнаружил, что могу получить uniqueIdentifier, используя:

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

Но это не может помочь мне получить IMEI.

Как получить IMEI на iPhone?

Ответы [ 6 ]

13 голосов
/ 15 января 2010

Вы не можете получить IMEI на iPhone больше. Возможно, вам придется использовать 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.

7 голосов
/ 05 мая 2009

Вы не можете найти IMEI программно на iPhone.

4 голосов
/ 05 мая 2009

Официального способа получить его нет, но в частной платформе Apple CoreTelephony.framework есть метод CTGetIMEI, который может вам помочь.

3 голосов
/ 05 мая 2009

Я уверен, что есть причины, по которым вы не можете сделать это легко. Авто-разблокировщик приложения? Я так не думаю. Я уверен, что Apple и AT & T тоже не понравится.

* # 06 # - способ получить его вручную.

2 голосов
/ 01 августа 2014

Я выполнил поиск только здесь в stackoverflow и пришел к выводу, что Apple больше не позволяет находить телефон EMEI после iOS 6.

Вы можете идентифицировать устройство, используя UDID. Я нашел свой ответ здесь https://stackoverflow.com/a/19927376/2283308

1 голос
/ 21 ноября 2012

добавить файл заголовка "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);
...