5

我已经尝试了 如何在 iPhone 上获取 IMEI 的公认答案? 但我得到一个空字符串。

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

关于如何使用这个私有 API 的任何建议?

4

1 回答 1

11

注意:这不再起作用了!

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

您可以查看我的示例项目

注意:我认为代码在模拟器上不起作用,您的应用可能会被拒绝。

于 2013-04-05T14:48:07.187 回答