2009-05-05 15 views
20

मैं आईफोन पर आईएमईआई प्राप्त करना चाहता हूं। मैं निम्नलिखित कोड का उपयोग करने की कोशिश करता हूं:आईफोन पर आईएमईआई कैसे प्राप्त करें?


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

लेकिन नेटवर्क नियंत्रक नहीं मिला है।


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

लेकिन इस आईएमईआई प्राप्त करने के लिए मेरी मदद नहीं कर सकते हैं:

मैं भी है कि मैं UniqueIdentifier का उपयोग कर प्राप्त कर सकते हैं लगता है।

आईफोन पर आईएमईआई कैसे प्राप्त करें के बारे में कोई सुझाव?

उत्तर

13

मैंने पाया कि एरिका ने ericasadun.com पर हेडर फ़ाइल "संदेश/नेटवर्ककंट्रोलर.h" पोस्ट की थी। http://ericasadun.com/iPhoneDocs300/_network_controller_8h-source.html (अब यह निकाला जा चुका है)

मैं एक हेडर फाइल बनाया, कॉपी और NetworkController.h इसे में फाइल और अपने प्रोजेक्ट के लिए निजी रूपरेखा "Message.framework" जोड़ने पेस्ट, आयात मेरे द्वारा बनाए गए हेडर फाइल।

अब मैं आईमेई नंबर प्राप्त करने के लिए मिली मूल विधि का उपयोग कर सकता हूं।

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

[संपादित] अब और काम नहीं करता है। ऐप्पल द्वारा ऐप खारिज कर दिया जाएगा। इसके बजाय आपको यूडीआईडी ​​का उपयोग करना होगा। नीचे पोस्ट देखें।

+4

एरिका ने आईएमईआई प्राप्त करने के लिए एक नया तरीका पोस्ट किया है: http://github.com/erica/uidevice-extension/blob/master/UIDevice-IOKitExtensions.m –

+1

संदेश.फ्रेमवर्क? क्या आपका मतलब संदेशयूआई ढांचा है? –

+0

नहीं, यह आईओएस 3 पर एक निजी ढांचा है। इसका उपयोग करने की कोई आवश्यकता नहीं है अब कोज़ एरिका ने आईमेई प्राप्त करने का एक नया तरीका पोस्ट किया है। –

7

आप आईएमईआई को आईफोन पर प्रोग्रामेटिक रूप से नहीं ढूंढ सकते हैं।

3

मुझे यकीन है कि ऐसे कारण हैं जिन्हें आप आसानी से नहीं कर सकते हैं। ऑटो अनलॉकर ऐप? मुझे ऐसा नहीं लगता। मुझे यकीन है कि ऐप्पल और एटी & टी इसे बहुत पसंद नहीं करेगा।

* # 06 # इसे मैन्युअल रूप से प्राप्त करने का तरीका है।

+0

# 06 # क्या है? क्या आप थोड़ा और समझा सकते हैं? –

+1

डायलिंग * # 06 # उन सभी सेल फोनों पर जिन्हें मैं जानता हूं, उनके आईएमईआई दिखाएंगे। यह स्टार-हैश-शून्य-छः हैश है। – bsneeze

4

इसे प्राप्त करने का कोई आधिकारिक तरीका नहीं है, लेकिन एप्पल में निजी ढांचे CoreTelephony.framework में एक विधि CTGetIMEI है जो आपकी मदद कर सकती है।

+1

मैं ऐप में से एक में CoreTelephony फ्रेम का उपयोग कर रहा हूं। लेकिन आईफोन के आईएमईआई नंबर प्राप्त करने के लिए मैं यह पता लगाने में असमर्थ हूं कि मैं __CTGetIMEI फ़ंक्शंस का उपयोग कैसे कर सकता हूं? क्या आप कृपया मदद कर सकते हैं? –

2

#import "CoreTelephony.h" 

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

अब अपनी परियोजना के लिए एक सिर फ़ाइल "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 **); 

अपने वर्ग के लिए निम्न कोड जोड़ने के लिए, आप IMEI प्राप्त कर सकते हैं आसानी से

NSString *imei; 
_CTServerConnectionCopyMobileIdentity(&result, sc, &imei); 
+0

जब मैं इसे आईफोन सिम्युलेटर (खाली रिटर्न) पर परीक्षण करता हूं तो मेरे लिए काम नहीं करता है? – Cemre

+0

कृपया वास्तविक आईफोन पर इसका परीक्षण करें, मैंने इसे आईफोन 4, आईओएस 5.1.1 – Vanguarder

+1

पर परीक्षण किया है क्या आप मुझे बता सकते हैं कि सेब इसे स्वीकार करेगा या नहीं? – tausun

2

मैंने केवल स्टैक ओवरफ्लो में एक खोज की है और निष्कर्ष यह है कि ऐप्पल अब आईओएस 6 के बाद फोन ईएमईआई खोजने की अनुमति नहीं देता है।

आप यूडीआईडी ​​का उपयोग कर डिवाइस की पहचान कर सकते हैं। मुझे मेरा जवाब मिला https://stackoverflow.com/a/19927376/2283308

संबंधित मुद्दे