我想检查是否已激活航班模式。如果是这样,我需要显示一条警告信息。
如何使用Swift检查航班(飞机)模式是否有效?
答案 0 :(得分:11)
最简单的方法是让iOS为您完成。
去Info.plist - >添加此**应用程序使用Wi-Fi(布尔值)YES *
测试:杀死你的应用 - >打开飞机模式 - >打开你的应用:你应该能够在应用程序中看到警报。 Tested on iPhone iOS9
答案 1 :(得分:0)
据我所知,你不能 - 或者你不能使用公共API。我的建议是调用所需的设备并设置相应的通知。如果你真的需要知道它的飞行模式,也许你可以通过拨打3G,GPS,Wi-Fi等来做到这一点,并检查每一个是否都关闭。
我看到了另一个建议,即使用应用内截图并检查橙色飞机(顶部是否包含橙色部分)。
两者都存在缺点,我的建议很糟糕,因为您的设备可能因其他原因而无法解决。
祝你好运。答案 2 :(得分:0)
如果您正在使用位置服务,则应通过在日志中显示以下内容来返回错误代码1009:
Geocode error: Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline."
如果您检查的返回代码是-1009,则可以将用户识别为离线,并相应地进行操作。
答案 3 :(得分:0)
您不能检查飞行模式是否处于活动状态,而可以检查蜂窝信号强度,
func getSignalStrength() -> Int {
let application = UIApplication.shared
let statusBarView = application.value(forKey: "statusBar") as! UIView
let foregroundView = statusBarView.value(forKey: "foregroundView") as! UIView
let foregroundViewSubviews = foregroundView.subviews
var dataNetworkItemView:UIView? = nil
for subview in foregroundViewSubviews {
if subview.isKind(of: NSClassFromString("UIStatusBarSignalStrengthItemView")!) {
dataNetworkItemView = subview
break
}
}
if dataNetworkItemView == nil
{
return 0
}
return dataNetworkItemView?.value(forKey: "signalStrengthBars") as! Int
}
使用此方法,您可以获取信号强度并确定设备是否处于飞行模式。 在飞行模式下,它将返回0;而在网络模式下,它将返回强度。
希望这对您有帮助