在iOS中唤醒网络无线电

时间:2014-04-29 22:58:53

标签: ios reachability

如果我将设备保持不动一段时间,收音机会睡觉以节省电量。如果我在这种状态下检查可达性,我知道我正在检查的主机是无法访问的。我如何唤醒收音机?我是否需要明确拨打网络电话?能否检测到网络无法到达的原因是收音机是否处于睡眠状态?

基本检查我是这样做的(取自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;
}

1 个答案:

答案 0 :(得分:0)

您无法管理设备的收音机。 iOS会为您做到这一点。

可达性表示如果可以访问互联网,则无法开启或关闭无线电。您可以通过单元格访问,即使wifi已打开(或者通过wifi可以轻松访问,即使单元格可用)。

在大多数情况下,屏幕的耗电量会使无线电耗电量相形见绌。 NSURLSessionConfiguration有一个discretionary属性,可以提示您不需要立即启动此操作系统的操作系统,但是,该属性已被后台会话任务忽略,以便人们选择加入帮助节省电力。