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を取得するのに役立ちません。
IPhoneでIMEIを入手する方法
IPhoneでIMEIを入手できなくなりました。代わりにUDIDを使用する必要がある場合があります。他の回答を参照してください。
以前は、ericasadun.comに投稿されたヘッダーファイル「Message/NetworkController.h」を使用できました。 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() { }
今、簡単に今井を手に入れることができます
NSString *imei;
_CTServerConnectionCopyMobileIdentity(&result, sc, &imei);