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)?
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.
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.