2010-05-18 7 views
10

क्या आईफोन ओएस में रनटाइम के दौरान जांच करने के लिए कोई संपत्ति या अन्य तंत्र है या नहीं, आईपैड 3 जी या आईपैड वाई-फाई पर एप्लिकेशन चल रहा है या नहीं? यूआईडीवीस क्लास की तरह लगता है कि ऐसा कुछ भी प्रदान नहीं करता है।आईफ़ोन ओएस: आईपैड वाई-फाई से आईपैड 3 जी प्रोग्रामेटिक रूप से अंतर कैसे करें?

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

उत्तर

4

मुझे लगता है कि 3 जी नेटवर्किंग क्षमताओं के अलावा, कोई फर्क नहीं पड़ता है। ऐप्पल द्वारा प्रदान की जाने वाली Reachability.h कक्षा का उपयोग करके आप जांच सकते हैं कि इंटरनेट कनेक्शन उपलब्ध है या नहीं और यदि यह मोबाइल नेटवर्क या वायरलेस नेटवर्क है।

नमूना यहाँ कोड: http://developer.apple.com/iphone/library/samplecode/Reachability/Introduction/Intro.html

गम्यता वर्ग निम्न मान प्रदान करता है:

ReachableViaCarrierDataNetwork, ReachableViaWiFiNetwork या NotReachable

+1

मेरा आवेदन इंटरनेट का उपयोग बड़े पैमाने पर इस्तेमाल कर रहा है और मैं स्पष्ट रूप से उपयोगकर्ता चेतावनी देने के लिए चाहते हैं कि 3 जी में देरी या अतिरिक्त पर लागत की उम्मीद की जा सकती है या कुछ फैंसी पॉपअप के साथ आईपैड 3 जी पर चलने से एप्लिकेशन को भी प्रतिबंधित कर सकते हैं। क्या पहुंच योग्यता वर्ग इसे कार्यान्वित करने की अनुमति देगा? – matm

+0

मैंने सोचा कि ReachableViaWWAN का मतलब है "3 जी या वाई-फाई" और ReachableViaWifi माप "केवल वाई-फाई"। क्या मैं सही हूँ? – matm

+0

आप CarrierDataNetwork और ReachableVieaWifiNetwork के बीच अंतर कर सकते हैं। – texmex5

2

आप वाईफाई और 3 जी iPads के बीच अंतर कर सकते हैं कि आपके ऐप में एक दूसरी पीढ़ी iPad पर चल रहा है:

+ (NSString *) iPadModelName 
{ 
    size_t size; 
    sysctlbyname("hw.machine", NULL, &size, NULL, 0); 
    char *machine = malloc(size); 
    sysctlbyname("hw.machine", machine, &size, NULL, 0); 
    NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding]; 
    free(machine); 
    if ([platform isEqualToString:@"iPad2,1"])  return @"iPad 2 (WiFi)"; 
    if ([platform isEqualToString:@"iPad2,2"])  return @"iPad 2 (GSM)"; 
    if ([platform isEqualToString:@"iPad2,3"])  return @"iPad 2 (CDMA)"; 

    return platform; 
} 
संबंधित मुद्दे