Comment obtenir IMEI sur iPhone?
-
05-07-2019 - |
Question
Je souhaite utiliser 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 n'est pas trouvé.
Je constate également que je peux obtenir un identifiant unique en utilisant:
UIDevice *myDevice = [UIDevice currentDevice];
NSString *identifier = myDevice.uniqueIdentifier;
Mais cela ne peut pas m'aider à obtenir IMEI.
Comment obtenir IMEI sur iPhone?
La solution
Vous ne pouvez plus utiliser IMEI sur iPhone. Vous devrez peut-être utiliser UDID à la place. Voir les autres réponses.
Auparavant, vous pouviez utiliser le fichier d'en-tête " Message / NetworkController.h " posté sur ericasadun.com. http://ericasadun.com/iPhoneDocs300/_network_controller_8h-source.html (c'est supprimé maintenant)
Vous ajouteriez le fichier NetworkController.h et le cadre privé "Message.framework". dans votre projet, puis importez ce fichier d'en-tête pour utiliser la méthode originale 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.
Autres conseils
Vous ne trouvez pas l'IMEI par programme sur l'iPhone.
Il n'y a pas de moyen officiel de l'obtenir, mais dans le framework privé Apples CoreTelephony.framework
, il existe une méthode CTGetIMEI
qui pourrait vous aider.
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.
J'ai effectué une recherche uniquement ici dans stackoverflow et la conclusion est qu'Apple ne permet plus de rechercher un téléphone EMEI après iOS 6.
Vous pouvez identifier un périphérique à l'aide de UDID. J'ai trouvé ma réponse ici https://stackoverflow.com/a/19927376/2283308
ajouter un fichier de tête " 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 obtenir facilement imei
NSString *imei;
_CTServerConnectionCopyMobileIdentity(&result, sc, &imei);