iphone中如何切换接入点

lznet 2012-04-18 05:26:06
小弟想知道iphone下能获取到接入点来选择使用哪种网络嘛?
Reachability会返回三种status (NotReachable,ReachableViaWWAN,ReachableViaWIFI)但返回类型到底有啥用呢?还望指点一二。。。
看到帖子说NSURLConnection会自动选择网络。。。当有wifi时,会选择wifi,当没有wifi时会选择gprs等等。。。
那我如何选择cmwap和cmnet呢?
还是在程序中不能选择,只能在iphone手机上进行设置。。。
我现在就是想当有wifi时就走wifi,否则就走cmwap或者3g。。
该如何编码实现呢?多谢哈
...全文
429 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
MonkeysDaddy 2012-04-23
  • 打赏
  • 举报
回复
typedef enum {
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;
}

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧