【问题标题】:IOS Battery Capacity informationIOS电池容量信息
【发布时间】:2017-05-24 12:11:13
【问题描述】:

今天可以在 Appstore 上找到的所有 IOS 电池应用程序都有相同的问题。他们都显示错误的“MaxCapacity” (电池今天可以容纳的最大容量) (不是电池出厂时可以容纳的原始容量)。

问题在于 MaxCapacity 非常“不敏感”。 每 100mAh 更新一次。

例如,如果容量是 1767mAh,MacCapacity 会显示 1700mAh,并且会一直显示,直到超过 1699mAh,然后它会切换到 1600mAh。

有一个名为 CoconutBattery 的 OSX 应用程序。 这个程序可以显示正确的容量。

有谁知道 CoconutBattery 使用什么来获取这些详细信息?

我已经尝试了 EEIOKitListener 项目(我相信它使用了 IOKit) 这个例子也显示了与 Appstore 上的应用程序相同的行为。

我需要一个可以显示正确 MaxCapacity 信息的 IOS 应用程序。

【问题讨论】:

  • 请求一个应用程序是 stackoverflow 的题外话。 stackoverflow 用于解决编程问题。

标签: ios xcode battery iokit capacity


【解决方案1】:

你可以通过UIDeviceListener获取maxCapacity

例子:

BatteryData =     {
        BatterySerialNumber = REDACTED;
        ChemID = 355;
        CycleCount = 524;
        DesignCapacity = 1420;
        Flags = 640;
        FullAvailableCapacity = 1325;
        ManufactureDate = REDACTED;
        MaxCapacity = 1273;
        MfgData = REDACTED;
        QmaxCell0 = 1350;
        StateOfCharge = 100;
        Voltage = 4194;
    };

iOS 10 的数据可能非常有限。

【讨论】:

  • 在使用 UIDeviceListener(IOS 10)时没有得到任何有用的信息。
【解决方案2】:

这只是显示电池电量百分比。

在 Objective-c 中

UIDevice *Device = [UIDevice currentDevice];
[myDevice setBatteryMonitoringEnabled:YES];
double batteryLvl = (float)[myDevice batteryLevel];
NSLog(@"batteryLvl : %f",batteryLvl);

斯威夫特 3+:

let Device = UIDevice.current
Device.isBatteryMonitoringEnabled = true
let batteryLvl: Double = Double(Device.batteryLevel)
print("batteryLvl : \(batteryLvl)")

输出:-

电池电量:0.650000

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多