iPhone OS中是否有任何属性或其他机制可以在运行时检查应用程序是否在iPad 3G或iPad Wi-Fi上运行? 看起来像UIDevice类没有提供类似的东西。
我的应用程序正在广泛使用互联网访问,我想明确警告用户,可能会出现3G延迟或额外费用,甚至禁止应用程序在iPad 3G上运行时使用一些花哨的弹出窗口。
答案 0 :(得分:4)
我认为除了3G网络功能之外,没有必要有所作为。使用Apple提供的Reachability.h类,您可以检查互联网连接是否可用以及是否为移动网络或无线网络。
示例代码: http://developer.apple.com/iphone/library/samplecode/Reachability/Introduction/Intro.html
Reachability类提供以下值:
ReachableViaCarrierDataNetwork
,ReachableViaWiFiNetwork
或NotReachable
。
答案 1 :(得分:2)
如果您的应用在第二代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;
}