iPhone4如何找出电源线是否插入?
我想知道我的应用程序是否在连接外部电源线的情况下运行。 有没有可能在运行时发现这种状态?
还有一个问题:这是否可以区分真正的USB电源和外部“电池组”?
谢谢!
使用UIDevice
属性batteryState
:
[[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging
来自UIDevice Docs :
typedef enum { UIDeviceBatteryStateUnknown, UIDeviceBatteryStateUnplugged, UIDeviceBatteryStateCharging, UIDeviceBatteryStateFull, } UIDeviceBatteryState;
至于你的第二个问题。 我不相信你可以确定电池组和墙上充电器之间的任何区别,因为上面的UIDeviceBatteryState
标志是设备电池可以报告的唯一“状态”。 因此,电池组和壁式充电器都会显示为UIDeviceBatteryStateCharging
或UIDeviceBatteryStateFull
(或者,如果电池组已插入电源sockets,则UIDeviceBatteryStateUnplugged
)。
您可以检测到电池是否在充电,但是与现有的API相比,电池电量已经尽可能地接近了 – 可以这么说,没有办法来检测到电源是从哪里来的。
UIDeviceBatteryState batteryState = [UIDevice currentDevice].batteryState; if (batteryState == UIDeviceBatteryStateCharging) { // Your code here }
我不得不包括这条线,
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
否则batteryState只返回UIDeviceBatteryStateUnknown。 也许这是必要的,因为这个问题最初是被问及和回答的。 我在这里find了提示: 确定准确的iPhone电池电量 。