繁体   English   中英

iPhone OS:如何以编程方式区分iPad 3G和iPad Wi-Fi?

[英]iPhones OS: how to programmatically differentiate iPad 3G from iPad Wi-Fi?

iPhone OS中是否有任何属性或其他机制可以在运行时检查应用程序是否在iPad 3G或iPad Wi-Fi上运行? 似乎UIDevice类没有提供类似的东西。

我的应用程序正在广泛使用Internet访问,我想明确警告用户,在3G上可能会出现延迟或产生额外费用,甚至会禁止应用程序在带有某些弹出式窗口的iPad 3G上运行。

我认为除了3G网络功能之外,没有必要有所作为。 使用Apple提供的Reachability.h类,您可以检查Internet连接是否可用,以及它是移动网络还是无线网络。

此处的示例代码: http : //developer.apple.com/iphone/library/samplecode/Reachability/Introduction/Intro.html

可达性类提供以下值:

ReachableViaCarrierDataNetworkReachableViaWiFiNetworkNotReachable

如果您的应用程序在第二代iPad上运行,则可以区分WiFi和3G 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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM