web-dev-qa-db-fra.com

Comment obtenir IMEI sur iPhone?

Je veux obtenir IMEI sur iPhone. J'essaie d'utiliser le code suivant:

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

Mais NetworkController est introuvable.

Je trouve également que je peux obtenir uniqueIdentifier en utilisant:

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

Mais cela ne peut pas m'aider à obtenir l'IMEI.

Comment obtenir IMEI sur iPhone?

21
Chilly Zhong

Vous ne pouvez plus obtenir IMEI sur iPhone. Vous devrez peut-être utiliser UDID à la place. Voir d'autres réponses.


Dans le passé, vous pouviez utiliser le fichier d'en-tête "Message/NetworkController.h" publié sur ericasadun.com. http://ericasadun.com/iPhoneDocs300/_network_controller_8h-source.html (Il a été supprimé maintenant)

Vous devez ajouter le fichier NetworkController.h et le cadre privé "Message.framework" à votre projet, puis importer ce fichier d'en-tête pour utiliser la méthode d'origine que j'ai trouvée pour obtenir le numéro imei:

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

Ce hack ne fonctionne plus. L'application sera rejetée par Apple.

13
Chilly Zhong

Vous ne pouvez pas trouver l'IMEI par programme sur l'iPhone.

7
Jane Sales

Il n'y a aucun moyen officiel de l'obtenir, mais dans le cadre privé d'Apple CoreTelephony.framework il existe une méthode CTGetIMEI qui pourrait vous aider.

4
oxigen

Je suis sûr qu'il y a des raisons pour lesquelles vous ne pouvez pas le faire facilement. Application de déverrouillage automatique? Je ne pense pas. Je suis sûr que Apple et AT&T ne l'aimeraient pas trop non plus.

* # 06 # est le moyen de l'obtenir manuellement.

3
bsneeze

J'ai fait une recherche uniquement ici dans stackoverflow et la conclusion est que Apple ne permet plus de trouver le téléphone EMEI après iOS 6.

Vous pouvez identifier un appareil à l'aide de l'UDID. J'ai trouvé ma réponse ici https://stackoverflow.com/a/19927376/2283308

2
Pedro Romão

ajoutez un fichier principal "CoreTelephony.h" à votre projet

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

ajoutez le code suivant à votre classe

#import "CoreTelephony.h"

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

maintenant, vous pouvez facilement obtenir imei

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