2012-09-18 24 views
14

विधियों के नीचे का उपयोग कर मेरा आवेदन आईओएस 4 में roamming का पता लगाने और 5.आईओएस 6 पर रोमिंग स्थिति का पता लगाने के कोई तरीके हैं?

NSString *carrierPListSymLinkPath = @"/var/mobile/Library/Preferences/com.apple.carrier.plist"; 
NSString *operatorPListSymLinkPath = @"/var/mobile/Library/Preferences/com.apple.operator.plist"; 

NSFileManager *fm = [NSFileManager defaultManager]; 
NSError *error = nil; 

NSString *carrierPListPath = [fm destinationOfSymbolicLinkAtPath:carrierPListSymLinkPath error:&error];  

NSString *operatorPListPath = [fm destinationOfSymbolicLinkAtPath:operatorPListSymLinkPath error:&error]; 

return (![operatorPListPath isEqualToString:carrierPListPath]); 

लेकिन इस कोड हमेशा iOS6 पर रिटर्न फाल्स (यहां तक ​​कि मैं घूम नहीं कर रहा हूँ, यह हमेशा अवास्तविक लौटाते), मैं इसे शायद plist में सोचने के लिए ऐप्पल द्वारा फ़ाइल स्थान बदल गया, क्या कोई भी एक ही समस्या का सामना करता है, क्या कोई इस पर मेरी सहायता कर सकता है?

धन्यवाद।

+0

मेरे लिए एक ही समस्या! अगर किसी को कोई समाधान मिला है। ऑपरेटरPListSymLinkPath शून्य कारण है: त्रुटि 257, ऑपरेशन की अनुमति नहीं है – Vassily

+0

संभावित डुप्लिकेट [क्या यह निर्धारित करने का कोई तरीका है कि आईफोन रोमिंग कर रहा है या नहीं?] (http://stackoverflow.com/questions/900547/is-there-any-way- टू-निर्धारित-if-the-iphone-is-roaming) –

+3

यह पुराने (पुराने) लिंक किए गए प्रश्न का डुप्लिकेट नहीं है, क्योंकि यह प्रश्न आईओएस 6 के बारे में है, जहां लिंक किए गए प्रश्न का समाधान अब काम नहीं करता है। – Nate

उत्तर

6

यह एक जवाब मैं सेब से मिल गया है:

"वास्तव में दुर्भाग्य से इन फाइलों को सार्वजनिक एपीआई और, के रूप में इस तरह के, तीसरे पक्ष के एप्लिकेशन द्वारा उपयोग के लिए लक्षित नहीं किया गया के रूप में दस्तावेज कभी नहीं थे मामलों का एक बहुत में।। इस तरह के प्रतिबंध लागू होते हैं, या तो तकनीकी रूप से आईओएस सैंडबॉक्स द्वारा या ऐप समीक्षा द्वारा प्रशासित रूप से लागू होते हैं। हालांकि, इनमें से कोई भी प्रक्रिया सही नहीं है, और ऐसे अवसर हैं जहां ऐप्स चीजों को पूरा करने के लिए समाप्त होते हैं, दुर्भाग्यवश यह इन ऐप्स को एक में रखता है प्रवर्तन में सुधार होता है, जैसा कि प्रवर्तन में सुधार होता है, जैसा कि इस मामले में हुआ है।

प्रत्यक्ष कामकाज के रूप में वास्तव में कोई नहीं है। आईओएस पर एकमात्र सार्वजनिक टेलीफोनी एपीआई पी है कोर टेलीफोनी ढांचे द्वारा rovided। इसके CTTelephonyNetworkInfo वर्ग, आप उपयोगकर्ता के 'घर' सेलुलर सर्वर के बारे में जानकारी देता है नहीं नेटवर्क है कि वे पर घूम रहे के बारे में। "

वे सुझाव है कि आप भू-आईपी जाँच का उपयोग करें।

1

यहाँ iOS6 के बाद से ही समस्या का सामना बीटा 1, उस संस्करण /var/mobile/Library/Preferences/com.apple.operator.plist प्रतीक-लिंक के बाद से कोई और अधिक प्रतिवर्ती है।

कोई अन्य डिवाइस-एक ही रास्ता अब इस बीच सार्वजनिक कर रहे हैं, अद्वितीय समाधान आईपी के लिए भू-आईपी के माध्यम से जांचना है, क्योंकि ट्रस्टी थोर ने कहा था, या आईपी क्लास के लिए जांच कर रहे हैं यदि आप एक वाहक के लिए एक ऐप लूपिंग।