получить IMEI на iPhone с помощью CoreTelephony?

Я попробовал принятый ответ Как получить IMEI на iPhone?, но я получил пустую строку.

Я видел, как кто-то предложил использовать платформу CoreTelephony, но я не уверен, как ее использовать для получения IMEI.

Любое предложение о том, как использовать этот частный API?


person user2249510    schedule 05.04.2013    source источник


Ответы (1)


ПРИМЕЧАНИЕ: это больше не работает!

Не проверял ни на одной новой iOS.

Вы должны добавить CoreTelephony.h в свой проект. Убедитесь, что заголовок имеет

int * _CTServerConnectionCopyMobileEquipmentInfo (
                                              struct CTResult * Status,
                                              struct __CTServerConnection * Connection,
                                              CFMutableDictionaryRef * Dictionary
                                              );

Тогда вы можете попробовать этот код:

#import "CoreTelephony.h"
void getImei() {
struct CTResult it;
CFMutableDictionaryRef kCTDict;
conn = _CTServerConnectionCreate(kCFAllocatorDefault, ConnectionCallback,NULL);
_CTServerConnectionCopyMobileEquipmentInfo(&it, conn, &kCTDict);
NSLog (@ "kCTDict is %@", kCTDict);
CFStringRef meid = CFDictionaryGetValue(kCTDict, CFSTR("kCTMobileEquipmentInfoMEID"));
NSLog (@ "kCTMobileEquipmentInfoMEID is %@", meid);
CFStringRef mobileId = CFDictionaryGetValue(kCTDict,    CFSTR("kCTMobileEquipmentInfoCurrentMobileId"));
NSLog (@ "kCTMobileEquipmentInfoCurrentMobileId is %@", mobileId);
}

Вот CoreTelephony.h

Вы можете проверить мой пример проекта.

Примечание. Я не думаю, что код работает на симуляторе, и ваше приложение может быть отклонено.

person pt2121    schedule 05.04.2013