簡體   English   中英

如何在IOS Swift中檢測飛行模式/飛行模式

[英]How to Detect Airplane Mode/ Flight Mode in IOS Swift

我需要檢測天氣IPhone處於飛行模式或不是,我做了很多研究,我發現沒有直接的方法來實現這一點。 我的應用程序具有呼叫號碼的功能,當Iphone具有飛機模式時,他無法呼叫。

所以我需要向他展示我的自定義屏幕以通知飛機模式已啟用。

如果任何人能夠解釋我們如何以有效的方式實現它,那將是一件好事。

這是另一種檢測此模式的方法,如下所示,

go Info.plist - >添加此**應用程序使用Wi-Fi(布爾值)是*

測試:殺死你的應用程序 - >打開飛機模式 - >打開你的應用程序:你應該能夠在應用程序中看到警報。

在此輸入圖像描述

嘗試使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM