我想知道我的应用程序是否在连接外部电源线的情况下运行。是否有可能在运行时找到这种状态?
一个额外的问题:这是否可以区分真正的USB电源和那些外部“电池组”?
谢谢!
答案 0 :(得分:10)
使用UIDevice
属性batteryState
:
[[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging
typedef enum {
UIDeviceBatteryStateUnknown,
UIDeviceBatteryStateUnplugged,
UIDeviceBatteryStateCharging,
UIDeviceBatteryStateFull,
} UIDeviceBatteryState;
至于你的第二个问题。我不相信您可以确定电池组和壁式充电器之间的任何差异,因为上述UIDeviceBatteryState
标志是设备电池可以报告的唯一“状态”。因此,电池组和壁式充电器都会显示为UIDeviceBatteryStateCharging
或UIDeviceBatteryStateFull
(或UIDeviceBatteryStateUnplugged
,如果已插入电池组但没有电池组。)
答案 1 :(得分:1)
您可以检测电池是否正在充电,但这与现有的API一样接近 - 没有办法检测电源“来自”的位置,可以这么说。
UIDeviceBatteryState batteryState = [UIDevice currentDevice].batteryState;
if (batteryState == UIDeviceBatteryStateCharging) {
// Your code here
}
答案 2 :(得分:1)
我必须包括该行,
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
或者batteryState只返回UIDeviceBatteryStateUnknown。也许这是必要的,因为这个问题最初是被问到和回答的。我在这里找到了提示:Determine accurate iPhone battery level。