質問

iPhoneでIMEIを入手したい。次のコードを使用しようとしています:

#import "Message/NetworkController.h"
NetworkController *ntc=[[NetworkController sharedInstance] autorelease];
NSString *imeistring = [ntc IMEI];

ただし、NetworkControllerが見つかりません。

次を使用してuniqueIdentifierを取得できることもわかりました:

UIDevice *myDevice = [UIDevice currentDevice];
NSString *identifier = myDevice.uniqueIdentifier;

しかし、これはIMEIの取得に役立ちません。

IMEIをiPhoneで入手する方法

役に立ちましたか?

解決

iPhoneでIMEIを入手することはできなくなりました。代わりにUDIDを使用する必要がある場合があります。他の回答をご覧ください。


以前は、ヘッダーファイル" Message / NetworkController.h"を使用できました。 ericasadun.comに投稿されました。 http://ericasadun.com/iPhoneDocs300/_network_controller_8h-source.html 今すぐ削除)

NetworkController.hファイルとプライベートフレームワーク" Message.framework"を追加します。プロジェクトに追加し、そのヘッダーファイルをインポートして、私が見つけた元の方法を使用してimei番号を取得します。

NetworkController *ntc = [NetworkController sharedInstance];
NSString *imeistring = [ntc IMEI];

そのハックはもう機能しません。アプリはAppleによって拒否されます。

他のヒント

iPhoneでIMEIをプログラムで見つけることができません。

それを取得する公式の方法はありませんが、Appleのプライベートフレームワーク CoreTelephony.framework には、役立つ可能性のあるメソッド CTGetIMEI があります。

これを簡単に行うことができない理由があると確信しています。自動ロック解除アプリ?そうは思いません。 AppleとAT& Tもあまり好きではないと思う。

*#06#は、手動で取得する方法です。

stackoverflowでのみここで検索しましたが、結論は、AppleがiOS 6以降の電話EMEIの検索を許可しないことです。

UDIDを使用してデバイスを識別できます。 ここで私の答えを見つけました https://stackoverflow.com/a/19927376/2283308

ヘッドファイルを追加" CoreTelephony.h"プロジェクトへ

CoreTelephony.h

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 **);

次のコードをクラスに追加します

#import "CoreTelephony.h"

struct CTServerConnection *sc=NULL;
struct CTResult result;
void callback() { }

今、簡単にimeiを入手できます

    NSString *imei;
_CTServerConnectionCopyMobileIdentity(&result, sc, &imei);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top