如何检测iPhone处于低电量模式

简介: 本文讲的是如何检测iPhone处于低电量模式,这个星期,我阅读了一篇关于Uber怎样检测手机处于省电模式的文章。 在人们手机快要关机时,使用Uber可能会面临更高的价格。
本文讲的是如何检测iPhone处于低电量模式,

 
 

这个星期,我阅读了一篇关于Uber怎样检测手机处于省电模式的文章。 在人们手机快要关机时,使用Uber可能会面临更高的价格。 这家公司(注:指Uber)宣称他们不会利用手机是否处于节能模式这一数据来进行定价, 但是这里我想知道 我们怎么知道用户的iPhone处于低电量模式

低电量模式

在iOS 9中,苹果为iPhone手机新添加了 低电量模式 功能。在你能充电之前,低电量模式通过关闭诸如邮件收发,Siri,后台消息推送能耗电功能来延长你的电池使用时间。

在这里面,很重要的一点是,是否进入低电量模式是由用户自行决定的。 你需要进入电池设置中去开启低电量模式。当你进入低电量模式的时候,状态栏上的电池图标会变成黄色。

1240
Low Power Mode

当你充电至80%以上时,系统会自动关闭低电量模式。

低电量模式检测

事实证明,在iOS 9中获取低电量模式信息是很容易的一件事。 你可以通过NSProcessInfo这个类来判断用户是否进入了低电量模式:

    if NSProcessInfo.processInfo().lowPowerModeEnabled {
      // stop battery intensive actions
    }

如果你想用Objective-C来实现这个功能:

    if ([[NSProcessInfo processInfo] isLowPowerModeEnabled]) {
      // stop battery intensive actions
    }

如果你监听了NSProcessInfoPowerStateDidChangeNotification通知,在用户切换进入低电量模式的时候你将接收到一个消息。比如,在视图控制器中的viewDidLoad方法中:

    NSNotificationCenter.defaultCenter().addObserver(self,
      selector: #selector(didChangePowerMode(_:)),
      name: NSProcessInfoPowerStateDidChangeNotification,
      object: nil)
    [[NSNotificationCenter defaultCenter] addObserver:self
      selector:@selector(didChangePowerMode:)
      name:NSProcessInfoPowerStateDidChangeNotification
      object:nil];

在我第一次发布这篇文章后,很多人提醒我:对于只对iOS 9.X适配的开发者而言,没有必要在 ViewController 消失时去移除 Observer

接着在这个方法会监视电池模式并在切换的时候给予一个响应。

    func didChangePowerMode(notification: NSNotification) {
        if NSProcessInfo.processInfo().lowPowerModeEnabled {
          // low power mode on
        } else {
          // low power mode off
        }
    }
    - (void)didChangePowerMode:(NSNotification *)notification {
      if ([[NSProcessInfo processInfo] isLowPowerModeEnabled]) {
        // low power mode on
      } else {
        // low power mode off
      }
    }

小贴士:

  • 这个通知方法和NSProcessInfo里的属性是在iOS 9系统中新提供的方法。如果你想让你的APP兼容iOS8或者更早版本的系统,你需要去这个网站 test for availability测试你的代码是否能正常运行。

  • 低电量模式是iPhone独有的特性,如果你在iPad上测试前面的代码,会一直返回false。

只有在你的 App 能够采取一些节能措施来延长电池寿命的情况下,检测用户开启了低电量模式才是有用的。这里,苹果给了一些建议:

  • 停止更新位置
  • 减少用户交互动画
  • 关闭数据流量这样的后台操作
  • 关闭特效




作者:Zheaoli
链接:http://www.jianshu.com/p/c3f57060dc0a
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。





原文发布时间为:2016年06月12日

本文来自云栖社区合作伙伴掘金,了解相关信息可以关注掘金网站。
目录
相关文章
|
iOS开发
Cocos2d-x 完美适配iphone、ipad(包括retina模式)
<div style="top: 0px;"></div> <span style="font-family:宋体;font-size:14px;"></span><p style="margin: 0cm 0cm 0pt;"><span lang="EN-US" style="color: black; font-family: 宋体; font-size: 12pt; mso-bidi
2237 0
|
iOS开发 Windows
iphone/ipad/itouch进入DFU模式最简单的操作办法
“正确进入DFU模式”对于果粉新手来说是一个很难掌握的技巧(越狱、降级都要用到它),特别是时间的把握上,多按一会儿不行,少按一会儿也不行,从网上看到这个办法,觉得不错,转载于此: 1、连接你的iphone到电脑2、先右击“我的电脑”—>属性—>硬件—>设备管理器—>通用串行总线控制器,你会看到...
1054 0
|
编解码 iOS开发
iphone 开发的基本入门知识
iphone 开发的基本入门知识
147 0
「镁客早报」iPhone或将在今年采用三摄;传Facebook致力于开发语音助力服务与亚马逊、苹果竞争
亚马逊向美国Alexa设备推免费音乐服务;视频会议软件开发商Zoom纳斯达克上市。
223 0
|
Web App开发 缓存 开发工具