iPhone4如何找出电源线是否插入?

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

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

谢谢!

使用UIDevice属性batteryState

 [[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging 

来自UIDevice Docs :

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

至于你的第二个问题。 我不相信你可以确定电池组和墙上充电器之间的任何区别,因为上面的UIDeviceBatteryState标志是设备电池可以报告的唯一“状态”。 因此,电池组和壁式充电器都会显示为UIDeviceBatteryStateChargingUIDeviceBatteryStateFull (或者,如果电池组已插入电源sockets,则UIDeviceBatteryStateUnplugged )。

您可以检测到电池是否在充电,但是与现有的API相比,电池电量已经尽可能地接近了 – 可以这么说,没有办法来检测到电源是从哪里来的。

 UIDeviceBatteryState batteryState = [UIDevice currentDevice].batteryState; if (batteryState == UIDeviceBatteryStateCharging) { // Your code here } 

我不得不包括这条线,

[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];

否则batteryState只返回UIDeviceBatteryStateUnknown。 也许这是必要的,因为这个问题最初是被问及和回答的。 我在这里find了提示: 确定准确的iPhone电池电量 。