使用CoreTelephony库,它是一个公开的framework,但很多API没有出现在文档中
iPhone私有API跟电话相关的CoreTelephony 里面提到了很多API, 其中有些可能跟电话录音有关系.
其中 _CTServerConnectionCopyMobileIdentity 就是用来获取IMEI的
#import
struct CTServerConnection
{
int a;
int b;
CFMachPortRef myport;
int c;
int d;
int e;
int f;
int g;
int h;
int i;
};
struct CTResult
{
int flag;
int a;
};
struct CTServerConnection * _CTServerConnectionCreate(CFAllocatorRef, void *, int *);
void _CTServerConnectionCopyMobileIdentity(struct CTResult *, struct CTServerConnection *, NSString **);
保存为 CoreTelephony.h
#import "CoreTelephony.h"
struct CTServerConnection *sc=NULL;
struct CTResult result;
void callback() { }
int main()
{
sc = _CTServerConnectionCreate(kCFAllocatorDefault, callback, NULL);
NSString *imei;
_CTServerConnectionCopyMobileIdentity(&result, sc, &imei);
NSLog (@"zhiwei's IMEI is %@", imei);
return 0;
}
IMSI
// 需要 CoreTelephony framework
// 在文件开头加入
extern NSString* CTSIMSupportCopyMobileSubscriberIdentity();
+ (NSString*) getDeviceIMSI {
return CTSIMSupportCopyMobileSubscriberIdentity();
}
本机电话号码
// 需要 CoreTelephony framework
// 在文件开头加入
extern NSString* CTSettingCopyMyPhoneNumber();
+ (NSString*) getPhoneCodeByCT {
return CTSettingCopyMyPhoneNumber();
}