Apple Watch是否有可以访问其大致电池寿命的对象或功能?
答案 0 :(得分:3)
这是可能的,但仅限于WatchOS 4的发布.UIDevice仅适用于iOS设备,因此它与此问题完全无关。它的对应部分是WatchOS中的WKInterfaceDevice。
正确的解决方案是:
OBJECTIVE-C版
float *watchBatteryPercentage = [WKInterfaceDevice currentDevice].batteryLevel;
但你必须先允许它:
[WKInterfaceDevice currentDevice].batteryMonitoringEnabled = YES;
SWIFT 4.2版本:
var watchBatteryPercentage:Int {
return Int(roundf(WKInterfaceDevice.current().batteryLevel * 100))
}
要使其可用,您必须使用:
WKInterfaceDevice.current().isBatteryMonitoringEnabled = true
答案 1 :(得分:2)
根据Sean的说法,您无法在当前的WatchKit版本中获得Apple Watch电池级别,以下代码只返回iPhone电池级别:
夫特:
var x = UIDevice.currentDevice().batteryLevel
目标-C:
int x = [UIDevice currentDevice].batteryLevel;
这是在App Store上的Battery Adviser Apple Watch应用程序(Applestan)中使用的代码。
答案 2 :(得分:1)
Swift(WatchKit 4.x)版本。请注意,您必须设置isBatteryMonitoringEnabled = true
,否则您将无法获得有效结果。在我的情况下,我不关心后续通知,所以我立即回到假。另请注意,当前模拟器不会模拟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
答案 3 :(得分:-3)
这应该有效:UIDevice.currentDevice().batteryLevel
这将返回一个Float