Comment obtenir IMEI sur iPhone 5

je développe une application pour les appareils jailbroken iOS. J'utilise https://github.com/erica/uidevice-extension/blob/master/UIDevice-IOKitExtensions.m pour obtenir IMEI, mais sur iPhone 5 Cette solution ne fonctionne pas(retour chaîne vide). Y a-t-il un moyen d'obtenir IMEI sur iPhone 5(iOS 6.1.2)?

2
demandé sur InViZz 2013-05-21 14:39:43

3 réponses

il y a plusieurs façons d'obtenir IMEI sur les nouveaux appareils

1) Gestion Privée De La Configuration.cadre

CFStringRef MCCTIMEI()

2) CoreTelephony.cadre

struct CTResult
{
    int flag;
    int a;
};
extern CFStringRef kCTMobileEquipmentInfoIMEI;

void *connection = _CTServerConnectionCreate(kCFAllocatorDefault, NULL, NULL);

NSDictionary *info = nil;
struct CTResult result;
_CTServerConnectionCopyMobileEquipmentInfo(&result, connection, &info);
[info autorelease];    
CFRelease(connection);

NSString* IMEI = (NSString*)info[(NSString*)kCTMobileEquipmentInfoIMEI];

3) liblockdown.dylib

extern CFStringRef kLockdownIMEIKey;

void* connection = lockdown_connect();
NSString* IMEI = [(NSString*)lockdown_copy_value(connection, NULL, kLockdownIMEIKey) autorelease];
lockdown_disconnect(connection);

j'ai eu quelques problèmes avec MCCTIMEI - IMEI vide retourné après le démarrage de l'appareil. Maintenant j'utilise la solution CoreTelephony, Je n'ai jamais eu de problème avec elle.

mise à JOUR

sur iOS 7 ces API sont protégées par le droit com.apple.coretelephony.Identity.get . Pour accéder IMEI (IMSI, numéro de téléphone et d'autres informations) vous devez signer votre Avec ce droit avec valeur booléenne fixée à true.

6
répondu creker 2014-09-03 14:08:36

il ont quelque difficile obtenir le nombre IMEI programatically. Cependant, si vous cherchez un moyen d'identifier un téléphone en particulier, vous pouvez utiliser L'UDID (Unique Device Identifier) pour le faire.

NSString *UDID = [[UIDevice currentDevice] uniqueIdentifier];

et aussi essayer pour IMEI

NSString *imei = [[NetworkController sharedInstance] IMEI];

****** Mise À Jour Octobre 2014******

NSUUID *UUID = [[UIDevice currentDevice] identifierForVendor];
NSString *stringUUID = [UUID UUIDString];

L'UUID est un identifiant essentiellement unique pour le matériel de votre téléphone. Il n'est pas garanti d'être unique en raison de l'absence collaboration entre les fabricants mais, compte tenu du nombre de combinaisons, il s'agit d'un identificateur de matériel raisonnablement fiable pour une vaste gamme d'applications.

2
répondu manujmv 2015-10-07 23:20:15

vous pouvez l'utiliser:


télécharger deux fichiers à partir de GitHub

OpenUDID.h
OpenUDID.m

ajoutez ces fichiers à votre projet.

et l'utiliser comme

#import "OpenUDID.h"

NSString* openUDID = [OpenUDID value];

il est testé dans l'iPhone 4 et l'iPhone 5

1
répondu Salim 2013-09-23 10:32:20