検証環境:
Xcode 11.3
Swift 5.1.3
「低電力モード」になっているかを取得
if ProcessInfo.processInfo.isLowPowerModeEnabled { // Low Power Mode is enabled. Start reducing activity to conserve energy. } else { // Low Power Mode is not enabled. }
「Appのバックグラウンド更新」の状態を取得
このステータスはアプリ毎に設定値を持つ。
以下画像はLINEアプリの例。
switch UIApplication.shared.backgroundRefreshStatus { case .available: print("Refresh available") case .denied: print("Refresh denied") case .restricted: print("Refresh restricted") }
UIBackgroundRefreshStatus
の定義
@available(iOS 7.0, *) public enum UIBackgroundRefreshStatus : Int { case restricted //< unavailable on this system due to device configuration; the user cannot enable the feature case denied //< explicitly disabled by the user for this application case available //< enabled for this application }
https://developer.apple.com/documentation/uikit/uiapplication/1622994-backgroundrefreshstatus