【问题标题】:How can i know airplane mode on or off in ios [duplicate]我如何知道在ios中打开或关闭飞行模式[重复]
【发布时间】:2015-06-26 15:53:45
【问题描述】:

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

Bool airplaneMode = airplanemode;

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

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

【问题讨论】:

  • Apple 没有提供任何 api 来检查这一点。

标签: ios objective-c iphone airplane-mode


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    目前没有公共 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];
    

    【讨论】:

      猜你喜欢
      • 2016-09-05
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 1970-01-01
      相关资源
      最近更新 更多