get IMEI on iPhone with CoreTelephony?

。_饼干妹妹 提交于 2019-11-28 04:37:27

问题


I have tried the accepted answer of How to get IMEI on iPhone? but I got an empty string.

I saw somebody suggested to use CoreTelephony framework, but I am not sure how to use it to obtain the IMEI.

Any suggestion on how to use this private API?


回答1:


NOTE: this does not work anymore!

Haven't tested on any new iOS.

You have to add CoreTelephony.h to your project. Make sure the header has

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

Then you can try this code:

#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);
}

Here's the CoreTelephony.h

You can check my example project.

Note: I don't think the code works on the simulator and your app might get rejected.



来源:https://stackoverflow.com/questions/15836900/get-imei-on-iphone-with-coretelephony

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!