iOS 9 で追加された低電力モードですが、現在の状態をコードで取得する方法について単純な日本語で検索したら、まだ UI 操作の方ばっかり引っかかってしまって「うーん」という感じだったので、重み付けの一助となるように情報としていちおう放流しておきます。
ちなみに、低電力モードの概要については、本家ページをご参照ください。
スポンサーリンク
読み込み中です。少々お待ち下さい
実装方法
といっても、ウチで何かを説明するまでもなく、本家を見れば Objective-C と Swift のどちらでも、一発で丸分かりです。
iOS 9 で NSProcessInfo に isLowPowerModeEnabled が追加されたので、それで判別すれば良いようですね。
多少補足するとしたら、iOS 8 以前のバージョンもサポートする場合は、予め respondsToSelector で利用できるかどうか調べておくぐらいでしょうか。
// iOS 低電力モードの判別
if ([[NSProcessInfo processInfo] respondsToSelector:@selector(isLowPowerModeEnabled)]) {
// 対応しているバージョンの OS の場合
if ([[NSProcessInfo processInfo] isLowPowerModeEnabled]) {
// 低電力モードがオンに設定されている時の動作
} else {
// 低電力モードがオフに設定されている時の動作
}
} else {
// 対応していないバージョンの OS の場合
}
また、ユーザーが低電力モードのオン/オフを切り替えた時に通知を受け取りたい場合は、例によって [NSNotificationCenter defaultCenter] に NSProcessInfoPowerStateDidChangeNotification を登録すれば通知されます。
// ほぼ本家そのままですが、こんな感じで
[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(yourMethodName:) name: NSProcessInfoPowerStateDidChangeNotification object: nil];
以前のバージョンの OS をサポートする場合は、こちらも同じように利用できるかどうかを先に確かめた方が良いでしょう。
おわりに
さっき簡単に試してみたところ、ちゃんと動いているようです(当たり前ですね)。
内容的には本家を見れば済む話なので、冒頭で触れたように、どちらかと言えば検索エンジン向けの記事になりますか。
なにそれ(笑)
macOS High Sierra にアップグレードしたら、CocoaPods が動かなくなった
Swift 4 で substring 的にインデックスを指定して部分文字列を取り出す方法
数ヶ月越しで我が家にお越しいただいた Alexa と戯れる(Amazon Echo Dot の感想)
コルタナさん、もう少し静かに喋っていただけますか(アプリ毎にボリュームを設定する方法)
iPhone X で手軽にホーム画面の1枚目に戻ったりアプリの削除画面を完了する方法
iPhone X の Face ID が全然認識しないと思ったら、まるきり自分のせいだった話
iOS 11以降は、Apple IDの2ステップ確認には対応せず、2ファクタ認証に一本化される模様