【问题标题】:Observe battery out of charge, Swift观察电池没电了,斯威夫特
【发布时间】:2019-05-24 08:11:31
【问题描述】:

我想在 iPhone 电池电量耗尽时执行一些代码。

func applicationWillTerminate(_ application: UIApplication) { 会被调用吗?如果没有,那么是否存在任何其他方法来跟踪这一点?提前致谢。

【问题讨论】:

  • 你的意思是在它耗尽电池之前的一段时间,对吧?达到 20% 时有节电通知

标签: ios swift battery


【解决方案1】:

不支持此功能,您必须决定何时电池电量过低以至于需要运行代码。

您可以做的是收听通知batteryLevelDidChangeNotification,这是通过激活监控来完成的,请参阅isBatteryMonitoringEnabled

如文档中所述,通知每分钟发送不超过一次,因此您必须确定电池电量低到足以被视为几乎耗尽,然后执行代码。

我不知道这可能是什么,从个人经验来看,我看到我的手机在低于 5% 的情况下还能存活很长时间,但也看到它们在低于 10% 后不久就死机了

【讨论】:

    【解决方案2】:

    可以使用以下代码sn-p:

        func startObservingBatteryDrainage(){
            if UIDevice.current.isBatteryMonitoringEnabled && (UIDevice.current.batteryState == .unplugged || UIDevice.current.batteryState == .unknown){
                if UIDevice.current.batteryLevel < 0.1{
                    NotificationCenter.default.addObserver(self, selector: #selector(funcWhenBatteryIsAlmostDrained), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
                }
            }
        }
    
        @objc func funcWhenBatteryIsAlmostDrained(){
            //do stuff
    
        }
    
    

    【讨论】:

      猜你喜欢
      • 2017-07-22
      • 2017-03-24
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 2016-02-08
      • 2017-11-13
      • 2015-08-19
      • 2014-09-11
      相关资源
      最近更新 更多