![](/img/trans.png)
[英]How to change connection from 3G to wi-fi programmatically using iPhone SDK?
[英]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
可达性类提供以下值:
ReachableViaCarrierDataNetwork
, ReachableViaWiFiNetwork
或NotReachable
。
如果您的应用程序在第二代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.