观察或收到 watchOS 电池状态变化的通知

Observing or getting notified of change in battery state for watchOS

有什么方法可以实时通知电池状态的变化而无需定期检查状态?

我尝试在 iOS 上找到 UIDevice.UIDeviceBatteryStateDidChangeNotification 的等效项,但 watchOS 的 WKInterfaceDevice 似乎不提供此通知。

尽管Apple doc指定UIKit中的类不支持KVO,可能和WatchKit一样,我还是尝试注册了一个WKInterfaceDevice.current().batteryState 上的观察者如下,但它不会通知更改

    WKInterfaceDevice.current().isBatteryMonitoringEnabled = true
    batteryObserver = WKInterfaceDevice.current().observe(\.batteryState) {
        [weak self] _, _ in self?.onBatteryStateChange()
    }

有谁知道如何在不定期轮询状态的情况下完成此操作?

我的解决方案是从定期轮询电池状态和电量的单例对象发出自定义通知。如果您有更好的解决方案请与我分享,我不太喜欢轮询部分。

Here is the sample code for this