iPhone4 how to find out if the power cable is plugged in?

前端 未结 3 1442
眼角桃花
眼角桃花 2021-02-10 14:36

I would like to know if my app is running with an external power cable attached. Is it possible to find out this state at runtime?

An extra question: would this be able

相关标签:
3条回答
  • 2021-02-10 14:40

    I had to include the line,

    [[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];

    or else batteryState only returns UIDeviceBatteryStateUnknown. Perhaps this became necessary since this question was initially asked and answered. I found the tip here: Determine accurate iPhone battery level.

    0 讨论(0)
  • 2021-02-10 14:47

    You can detect whether the battery is charging, but that's as close as you can get with existing APIs – there's no way to detect where the power is "coming from", so to speak.

    UIDeviceBatteryState batteryState = [UIDevice currentDevice].batteryState;
    if (batteryState == UIDeviceBatteryStateCharging) {
        // Your code here
    }
    
    0 讨论(0)
  • 2021-02-10 15:03

    Use UIDevice property batteryState:

    [[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging
    

    From UIDevice Docs:

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

    As for your 2nd question. I don't believe you can determine any difference between a battery pack and a wall charger since the above UIDeviceBatteryState flags are the only "states" a device battery can report. So both a battery pack and wall charger would appear as either UIDeviceBatteryStateCharging or UIDeviceBatteryStateFull (or UIDeviceBatteryStateUnplugged if the battery pack is plugged in but out of juice).

    0 讨论(0)
提交回复
热议问题