iPhone4如何查看电源线是否已插入?

时间:2011-10-28 01:55:39

标签: iphone ios power-management

我想知道我的应用程序是否在连接外部电源线的情况下运行。是否有可能在运行时找到这种状态?

一个额外的问题:这是否可以区分真正的USB电源和那些外部“电池组”?

谢谢!

3 个答案:

答案 0 :(得分:10)

使用UIDevice属性batteryState

[[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging

来自UIDevice Docs

typedef enum {
    UIDeviceBatteryStateUnknown,
    UIDeviceBatteryStateUnplugged,
    UIDeviceBatteryStateCharging,
    UIDeviceBatteryStateFull,
} UIDeviceBatteryState;

至于你的第二个问题。我不相信您可以确定电池组和壁式充电器之间的任何差异,因为上述UIDeviceBatteryState标志是设备电池可以报告的唯一“状态”。因此,电池组和壁式充电器都会显示为UIDeviceBatteryStateChargingUIDeviceBatteryStateFull(或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