V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  shellcodecow  ›  全部回复第 31 页 / 共 34 页
回复总数  673
1 ... 23  24  25  26  27  28  29  30  31  32 ... 34  
2013-03-26 10:58:25 +08:00
回复了 vanemu 创建的主题 iDev iOS 下不用私有 API,有办法判断 2G 和 3G 网络么?
好吧 我复制黏贴了 请自行补脑。Sorry
2013-03-26 10:57:52 +08:00
回复了 vanemu 创建的主题 iDev iOS 下不用私有 API,有办法判断 2G 和 3G 网络么?
中国的iphone网络是区分2G和3G,要想获取当前的网络状态一直没有一个好的方法,网上给的例子也不尽让人满意
最近闲来无事,仔细的研究Apple提供的例子:Reachability
通过如下的代码:

?
1
2
3
Reachability *reach = [Reachability reachabilityWithHostName:@"www.apple.com"];
NSLog(@"%d", [reach currentReachabilityStatus]);
return;

在currentReachabilityStatus函数中,我们注意到这样的输出:

static void PrintReachabilityFlags(SCNetworkReachabilityFlags flags, const char* comment)
{
#if kShouldPrintReachabilityFlags

NSLog(@"Reachability Flag Status: %c%c %c%c%c%c%c%c%c %s\n",
(flags & kSCNetworkReachabilityFlagsIsWWAN) ? 'W' : '-',
(flags & kSCNetworkReachabilityFlagsReachable) ? 'R' : '-',

(flags & kSCNetworkReachabilityFlagsTransientConnection) ? 't' : '-',
(flags & kSCNetworkReachabilityFlagsConnectionRequired) ? 'c' : '-',
(flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) ? 'C' : '-',
(flags & kSCNetworkReachabilityFlagsInterventionRequired) ? 'i' : '-',
(flags & kSCNetworkReachabilityFlagsConnectionOnDemand) ? 'D' : '-',
(flags & kSCNetworkReachabilityFlagsIsLocalAddress) ? 'l' : '-',
(flags & kSCNetworkReachabilityFlagsIsDirect) ? 'd' : '-',
comment
);
#endif
}
当是wifi的时候输出R
当是3G的时候输出Rt
当是联通2G或者是移动的时候输出Rtc
在头文件定义如下:
?
1
2
3
4
5
6
typedef enum {
NotReachable = 0,
ReachableViaWiFi,
ReachableVia3G,
ReachableVia2G,//当前无法区分是联通的2G还是移动的2G
} NetworkStatus;


因此我就是以这个为判断条件的,重写Reachability的函数:
- (NetworkStatus) networkStatusForFlags: (SCNetworkReachabilityFlags) flags
{
if ((flags & kSCNetworkReachabilityFlagsReachable) == 0)
{
return NotReachable;
}


BOOL retVal = NotReachable;

if ((flags & kSCNetworkReachabilityFlagsConnectionRequired) == 0)
{
// if target host is reachable and no connection is required
// then we'll assume (for now) that your on Wi-Fi
retVal = ReachableViaWiFi;
}


if ((((flags & kSCNetworkReachabilityFlagsConnectionOnDemand ) != 0) ||
(flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) != 0))
{
// ... and the connection is on-demand (or on-traffic) if the
// calling application is using the CFSocketStream or higher APIs
if ((flags & kSCNetworkReachabilityFlagsInterventionRequired) == 0)
{
// ... and no [user] intervention is needed
retVal = ReachableViaWiFi;
}
}

?
1
2
3
4
5
6
7
8
9
if ((flags & kSCNetworkReachabilityFlagsIsWWAN) == kSCNetworkReachabilityFlagsIsWWAN)
{
retVal = ReachableVia3G;
if((flags & kSCNetworkReachabilityFlagsReachable) == kSCNetworkReachabilityFlagsReachable) {
if((flags & kSCNetworkReachabilityFlagsTransientConnection) == kSCNetworkReachabilityFlagsTransientConnection) {
retVal = ReachableVia2G;
}
}
}

return retVal;
}


这样就可以正确的区分是2G,3G,wifi网络,这只支持中国地区,其他地区未考虑。
作者:Rush.D.Xzj
@darkyoung 基本25左右吧。 直接搬回家咯 P8 通勤不错的。
2013-03-19 10:00:47 +08:00
回复了 mlhorizon 创建的主题 分享发现 玩火玩出境界-吉他操控的火焰阵列[树莓派,Arduino ....]
这网站风格酷爆了。 我觉得属于90年代发展的另外一个分支。平行宇宙论
2013-03-16 18:51:21 +08:00
回复了 itopidea 创建的主题 问与答 求现在世界上以安全著称的浏览器?
safari...
同上
2013-03-14 14:19:42 +08:00
回复了 GezBox 创建的主题 酷工作 [杭州]招移动端和服务端工程师
@GezBox 嗯 是的。
2013-03-14 12:49:24 +08:00
回复了 GezBox 创建的主题 酷工作 [杭州]招移动端和服务端工程师
@Vernsu python可以看看 格子毕竟是个拿到投资的公司~。LOL
2013-03-14 11:13:48 +08:00
回复了 weicaizhi 创建的主题 iDev Java程序员需要多久才能转成正式的iOS开发工程师?
呵,我以长期ios经验建议你去android。
因为很简单,android现在赚钱比ios容易。
2013-03-14 10:53:41 +08:00
回复了 weicaizhi 创建的主题 iDev Java程序员需要多久才能转成正式的iOS开发工程师?
直接android不好么? 为何要iOS。现在android也很火
2013-03-13 22:41:25 +08:00
回复了 iambeginner 创建的主题 程序员 600元一台二手联通行货iPhone 4 怎么秒
预定一台~
2013-03-11 18:26:48 +08:00
回复了 doubleone 创建的主题 iDev 请教一个IAP问题:如何同步服务器和客户端的购买信息
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
只要不finish 下次点击应该还是会走一遍流程,这时候你加判断。如果post receipt to sever失败重试3次,如果3次还是失败,弹出feedback 发送email给客服。
2013-03-11 18:21:47 +08:00
回复了 Vernsu 创建的主题 求职 [求职]杭州前端开发职位
[email protected] 杭州 创业团队 工作地点:环球中心,请发一份作品哦~
1 ... 23  24  25  26  27  28  29  30  31  32 ... 34  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5553 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 60ms · UTC 02:43 · PVG 10:43 · LAX 19:43 · JFK 22:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.