【问题标题】:iPhone4 how to find out if the power cable is plugged in?iPhone4如何判断电源线是否插好?
【发布时间】:2011-10-28 01:55:38
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: iphone ios power-management


    【解决方案1】:

    使用UIDevice属性batteryState

    [[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging
    

    来自UIDevice Docs

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

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

    【讨论】:

    • 太棒了,这正是我想要的!
    【解决方案2】:

    您可以检测电池是否正在充电,但这与现有 API 所能达到的一样接近 - 可以说,无法检测电源“来自”何处。

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

    【讨论】:

      【解决方案3】:

      我必须包含该行,

      [[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];

      否则 batteryState 只返回 UIDeviceBatteryStateUnknown。也许这变得有必要,因为最初提出并回答了这个问题。我在这里找到了提示:Determine accurate iPhone battery level

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多