Domanda

Voglio ottenere l'IMEI su iPhone. Tento di utilizzare il seguente codice:

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

Ma NetworkController non è stato trovato.

Trovo anche che posso ottenere uniqueIdentifier usando:

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

Ma questo non può aiutarmi a ottenere l'IMEI.

Come ottenere l'IMEI su iPhone?

È stato utile?

Soluzione

Non puoi più ottenere l'IMEI su iPhone. Potrebbe essere necessario utilizzare UDID invece. Vedi altre risposte.


In passato, era possibile utilizzare il file di intestazione " Message / NetworkController.h " pubblicato su ericasadun.com. http://ericasadun.com/iPhoneDocs300/_network_controller_8h-source.html (È stato rimosso ora)

Dovresti aggiungere il file NetworkController.h e il framework privato " Message.framework " nel tuo progetto, quindi importa quel file di intestazione per utilizzare il metodo originale che ho trovato per ottenere il numero imei:

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

Questo hack non funziona più. L'app verrà rifiutata da Apple.

Altri suggerimenti

Non è possibile trovare l'IMEI a livello di codice sull'iPhone.

Non esiste un modo ufficiale per ottenerlo, ma nel framework privato Apple CoreTelephony.framework esiste un metodo CTGetIMEI che potrebbe aiutarti.

Sono sicuro che ci sono ragioni per cui non puoi farlo facilmente. App di sblocco automatico? Io non la penso così. Sono sicuro che anche Apple e AT & amp; T non apprezzerebbero troppo.

* # 06 # è il modo per ottenerlo manualmente.

Ho effettuato una ricerca solo qui in StackOverflow e la conclusione è che Apple non consente più di trovare il telefono EMEI dopo iOS 6.

Puoi identificare un dispositivo usando UDID. Ho trovato la mia risposta qui https://stackoverflow.com/a/19927376/2283308

aggiungi un file head " CoreTelephony.h " al tuo progetto

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

aggiungi il seguente codice alla tua classe

#import "CoreTelephony.h"

struct CTServerConnection *sc=NULL;
struct CTResult result;
void callback() { }

ora puoi ottenere facilmente imei

    NSString *imei;
_CTServerConnectionCopyMobileIdentity(&result, sc, &imei);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top