次の情報を返すアプリを構築しようとしています:
- IMEI
- ICCID
- IMSI
CoreTelephony を使用できることはわかりましたが、疑うようになりました: これらのヘッダー ファイル (クラス ダンプから CoreTelephony.h をインポート) を使用するには、デバイスをジェイルブレイクする必要がありますか?
そうでない場合、CoreTelephony は iOS6 でのみ有効ですか?
それが私のやり方です:
CTServerConnectionRef conn;
void ConnectionCallback(CTServerConnectionRef connection, CFStringRef string, CFDictionaryRef dictionary, void *data) {
NSLog(@"ConnectionCallback");
CFShow(dictionary);
}
- (NSString *)coreTelephonyInfoForKey:(const NSString *)key {
NSString *retVal = nil;
conn = _CTServerConnectionCreate(kCFAllocatorDefault, ConnectionCallback,NULL);
if (conn) {
struct CTResult result;
CFMutableDictionaryRef equipmentInfo = nil;
_CTServerConnectionCopyMobileEquipmentInfo(&result, conn, &equipmentInfo);
if (equipmentInfo) {
retVal = [NSString stringWithString:CFDictionaryGetValue(equipmentInfo, (__bridge const void *)(key))];
CFRelease(equipmentInfo);
}
CFRelease(conn);
}
return retVal;
}
- (NSString *)IMEI {
return [self coreTelephonyInfoForKey:@"kCTMobileEquipmentInfoIMEI"];
ここに私のCoreTelephony.hがあります