如果我将设备保持不动一段时间,收音机会睡觉以节省电量。如果我在这种状态下检查可达性,我知道我正在检查的主机是无法访问的。我如何唤醒收音机?我是否需要明确拨打网络电话?能否检测到网络无法到达的原因是收音机是否处于睡眠状态?
基本检查我是这样做的(取自Apple的可达性):
// The setup
- (id)init
{
self = [super init];
if (self)
{
_reachabilityRef = SCNetworkReachabilityCreateWithName(NULL, [@"myserver.example.com" UTF8String]);
}
return self;
}
// The check
- (BOOL)isReachable
{
return [self currentReachabilityStatus] != NotReachable;
}
// For reference
- (NetworkStatus)currentReachabilityStatus
{
NSAssert(_reachabilityRef != NULL, @"currentNetworkStatus called with NULL SCNetworkReachabilityRef");
NetworkStatus returnValue = NotReachable;
SCNetworkReachabilityFlags flags;
if (SCNetworkReachabilityGetFlags(_reachabilityRef, &flags))
{
returnValue = [self networkStatusForFlags:flags];
}
return returnValue;
}
答案 0 :(得分:0)
您无法管理设备的收音机。 iOS会为您做到这一点。
可达性表示如果可以访问互联网,则无法开启或关闭无线电。您可以通过单元格访问,即使wifi已打开(或者通过wifi可以轻松访问,即使单元格可用)。
在大多数情况下,屏幕的耗电量会使无线电耗电量相形见绌。 NSURLSessionConfiguration
有一个discretionary
属性,可以提示您不需要立即启动此操作系统的操作系统,但是,该属性已被后台会话任务忽略,以便人们选择加入帮助节省电力。