使用CoreTelephony在iPhone上获取IMEI?

时间:2013-04-05 14:45:40

标签: iphone ios iphone-privateapi imei

我已经尝试过接受的答案 How to get IMEI on iPhone? 但我得到一个空字符串。

我看到有人建议使用CoreTelephony框架, 但我不知道如何用它来获取IMEI。

有关如何使用此私有API的任何建议吗?

1 个答案:

答案 0 :(得分:11)

注意:这不再有用了!

Haven未在任何新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

您可以查看我的example project

注意:我认为代码无法在模拟器上运行,您的应用可能会遭到拒绝。