你能得到 Apple Watch 的大概电量百分比吗?

Can you get the approximate battery percentage of the Apple Watch?

Apple Watch 是否有可以获取其大概电池寿命的对象或功能?

这应该有效:UIDevice.currentDevice().batteryLevel这将 return 一个 Float

根据 Sean 的说法,您无法在当前的 WatchKit 版本中获取 Apple Watch 电池电量,下面的代码只是 returns iPhone 电池电量:

Swift:

var x = UIDevice.currentDevice().batteryLevel

Objective-C:

int x = [UIDevice currentDevice].batteryLevel;

这是 App Store 上的 Battery Adviser Apple Watch 应用(由 Applestan 开发)中使用的代码。

这是可能的,但只是从 WatchOS 4 的发布开始。UIDevice 仅适用于 iOS 设备,因此它与这个问题绝对无关。对应的是WatchOS中的WKInterfaceDevice

正确的解法是:

OBJECTIVE-C version

float *watchBatteryPercentage = [WKInterfaceDevice currentDevice].batteryLevel;

但你必须先允许它:

[WKInterfaceDevice currentDevice].batteryMonitoringEnabled = YES;

SWIFT 4.2 version:

var watchBatteryPercentage:Int {
    return Int(roundf(WKInterfaceDevice.current().batteryLevel * 100))
}

要使其可用,您必须使用:

WKInterfaceDevice.current().isBatteryMonitoringEnabled = true

Swift (WatchKit 4.x) 版本。请注意,您必须设置 isBatteryMonitoringEnabled = true 否则您将得不到有效结果。就我而言,我不关心后续通知,所以我立即设置回 false。另请注意,当前模拟器不模拟 batteryLevel/batteryState.

    let curDevice = WKInterfaceDevice.current()
    curDevice.isBatteryMonitoringEnabled = true // Enable just long enough for data
    let chargeLevel = curDevice.batteryLevel
    let chargeState = curDevice.batteryState
    curDevice.isBatteryMonitoringEnabled = false