[英]How to Detect Airplane Mode/ Flight Mode in IOS Swift
我需要檢測天氣IPhone處於飛行模式或不是,我做了很多研究,我發現沒有直接的方法來實現這一點。 我的應用程序具有呼叫號碼的功能,當Iphone具有飛機模式時,他無法呼叫。
所以我需要向他展示我的自定義屏幕以通知飛機模式已啟用。
如果任何人能夠解釋我們如何以有效的方式實現它,那將是一件好事。
嘗試使用SCNetworkReachabilityGetFlags(SystemConfiguration框架)。 如果傳回的flags變量為0且返回值為YES,則啟用飛行模式。
查看Apple的Reachability類 。
沒有內置的api來確定飛行模式是否打開。 您必須檢查相應的服務是否可用,具體取決於您在應用中的需求。
如果您未提交到App Store,則可以使用私有API檢查狀態欄,以查看是否存在飛行模式圖標。 這是檢查狀態欄視圖層次結構以查看子視圖中是否存在UIStatusBarAirplaneModeItemView
。
除了不是App Store安全之外,此方法還要求您的應用顯示狀態欄。 這也是脆弱的,並且在Apple決定改變狀態欄結構的任何時候都可以打破。
if let statusBarSubviews = ((UIApplication.shared.value(forKey: "statusBar") as? UIView)?.value(forKey: "foregroundView") as? UIView)?.subviews,
statusBarSubviews.contains(where: { $0.classForCoder == NSClassFromString("UIStatusBarAirplaneModeItemView") }) {
print("Airplane mode is on.")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.