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 をサポートする場合は、こちらも同じように利用できるかどうかを先に確かめた方が良いでしょう。
おわりに
さっき簡単に試してみたところ、ちゃんと動いているようです(当たり前ですね)。
内容的には本家を見れば済む話なので、冒頭で触れたように、どちらかと言えば検索エンジン向けの記事になりますか。
なにそれ(笑)