小弟想知道iphone下能获取到接入点来选择使用哪种网络嘛?
Reachability会返回三种status (NotReachable,ReachableViaWWAN,ReachableViaWIFI)但返回类型到底有啥用呢?还望指点一二
看到帖子说NSURLConnection会自动选择网络当有wifi时,会选择wifi,当没有wifi时会选择gprs等等
那我如何选择cmwap和cmnet呢?
还是在程序中不能选择,只能在iphone手机上进行设置
我现在就是想当有wifi时就走wifi,否则就走cmwap或者3g。。
该如何编码实现呢?多谢哈
Reachability会返回三种status (NotReachable,ReachableViaWWAN,ReachableViaWIFI)但返回类型到底有啥用呢?还望指点一二
看到帖子说NSURLConnection会自动选择网络当有wifi时,会选择wifi,当没有wifi时会选择gprs等等
那我如何选择cmwap和cmnet呢?
还是在程序中不能选择,只能在iphone手机上进行设置
我现在就是想当有wifi时就走wifi,否则就走cmwap或者3g。。
该如何编码实现呢?多谢哈
NETWORK_NONE,
NETWORK_WIFI,
NETWORK_EDGE,
NETWORK_3G,
} NETWORK_TYPE;+(NETWORK_TYPE) GetNetworkType{
static BOOL checkNetwork = YES;
static NETWORK_TYPE network = NETWORK_NONE;
SCNetworkReachabilityFlags flags = 0;
Boolean success;
const char *host_name = [@"http://www.yahoo.com" UTF8String];
if (checkNetwork) { // Since checking the reachability of a host can be expensive, cache the result and perform the reachability check once.
checkNetwork = NO;
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, host_name);
success = SCNetworkReachabilityGetFlags(reachability, &flags);
if (success == TRUE) {
if (flags & kSCNetworkReachabilityFlagsReachable) {
if (flags & kSCNetworkReachabilityFlagsIsWWAN) {
//蜂窝数据
network = NETWORK_EDGE;
} else {
//wifi
network = NETWORK_WIFI;
}
} else {
checkNetwork = YES;
network = NETWORK_NONE;
}
} else {
checkNetwork = YES;
network = NETWORK_NONE;
}
CFRelease(reachability);
}
return network;
}