4

我想在布尔变量上检查飞行模式的开或关。例如 :

Bool airplaneMode = airplanemode;

if(airplaneMode)
{
     NSLoag(@"Airplane mode on");
}
else
{
    NSLoag(@"Airplane mode Off");
}

我不想检查网络是否可用我只需要检查飞行模式的开启或关闭。

4

2 回答 2

1

AFAIK,没有内置的 api 来确定飞行模式是否打开。您必须检查相应的服务是否可用,具体取决于您在应用程序中的需要。

例如,如果您需要 GPS 位置,您可以检查 GPS 位置是否可用,然后处理您的不同情况。对于网络连接和飞行模式打开时禁用的所有其他服务也是如此。

Rechability是检查网络连接的一个例子。

于 2015-06-26T07:49:01.073 回答
1

目前没有用于直接检查飞行模式是否开启的公共 API。

最接近的解决方案是使用 SystemConfiguration 框架并监控设备是否可以连接到网络。

使用 Reachability 类(通过 tonymillion),您可以执行类似的操作

Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];
reach.reachableBlock = ^(Reachability*reach) {
    // do something to prevent the app to be used
    // NOTE: this block is called on a background thread
    // so if you need to change the UI, do 
    dispatch_async(dispatch_get_main_queue(), ^{
        // UI related stuff
    });
};
reach.unreachableBlock = ^(Reachability*reach) {
    // ok continue using the app
};
[reach startNotifier];
于 2015-06-26T07:53:45.380 回答