ジェイルブレイクされた iOS デバイス用のアプリケーションを開発しています。https://github.com/erica/uidevice-extension/blob/master/UIDevice-IOKitExtensions.mを使用して IMEI を取得していますが、iPhone 5 ではこのソリューションは機能しません (空の文字列を返します)。iPhone 5(iOS 6.1.2)でIMEIを取得する方法はありますか?
質問する
14603 次
3 に答える
6
新しいデバイスで IMEI を取得するにはいくつかの方法があります
1) プライベート ManagedConfiguration.framework
CFStringRef MCCTIMEI()
2) CoreTelephony.framework
struct CTResult
{
int flag;
int a;
};
extern CFStringRef kCTMobileEquipmentInfoIMEI;
void *connection = _CTServerConnectionCreate(kCFAllocatorDefault, NULL, NULL);
NSDictionary *info = nil;
struct CTResult result;
_CTServerConnectionCopyMobileEquipmentInfo(&result, connection, &info);
[info autorelease];
CFRelease(connection);
NSString* IMEI = (NSString*)info[(NSString*)kCTMobileEquipmentInfoIMEI];
3) liblockdown.dylib
extern CFStringRef kLockdownIMEIKey;
void* connection = lockdown_connect();
NSString* IMEI = [(NSString*)lockdown_copy_value(connection, NULL, kLockdownIMEIKey) autorelease];
lockdown_disconnect(connection);
いくつか問題がありましたMCCTIMEI
- デバイスの起動後に空の IMEI が返されました。今、私は CoreTelephony ソリューションを使用していますが、問題はありませんでした。
アップデート
iOS 7 では、これらの API はcom.apple.coretelephony.Identity.get
権限によって保護されています。IMEI (IMSI、電話番号、およびその他の情報) にアクセスするには、ブール値を true に設定してその資格に署名する必要があります。
于 2013-05-21T18:32:00.663 に答える
1
あなたはそれを使用することができます:
GitHubから次の 2 つのファイルをダウンロードします。
OpenUDID.h
OpenUDID.m
これらのファイルをプロジェクトに追加します。
そしてそれを次のように使用します
#import "OpenUDID.h"
NSString* openUDID = [OpenUDID value];
iPhone 4 および iPhone 5 でテスト済み
于 2013-09-23T10:32:20.780 に答える