Информация о емкости батареи IOS

Все приложения для батареи IOS, которые сегодня можно найти в Appstore, имеют одну и ту же проблему. Все они показывают неправильную «MaxCapacity» (максимальную емкость, которую батарея может удерживать сегодня) (а не исходную емкость, которую батарея может удерживать при изготовлении).

Проблема в том, что MaxCapacity очень «нечувствительный». Он обновляется каждые 100 мАч.

Например, если емкость составляет 1767 мАч, MacCapacity покажет 1700 мАч и будет показывать это значение до тех пор, пока не превысит 1699 мАч, а затем переключится на 1600 мАч.

Существует приложение для OSX под названием CoconutBattery. Эта программа может показать правильный потенциал.

Кто-нибудь знает, какие вызовы использует CoconutBattery для получения этой подробной информации?

Я попробовал проект EEIOKitListener (который, как мне кажется, использует IOKit), и этот пример также показывает то же поведение, что и приложения в Appstore.

Мне нужно приложение для IOS, которое может отображать правильную информацию о MaxCapacity.


person Henric Olsen    schedule 24.05.2017    source источник
comment
Запрашивать приложение не по теме для stackoverflow. stackoverflow предназначен для вопросов по программированию.   -  person rckoenes    schedule 24.05.2017


Ответы (2)


это показывает только уровень заряда батареи в процентах.

в цели-с

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

person Vikash Kumar    schedule 24.05.2017

Вы можете получить maxCapacity с помощью UIDeviceListener.

Пример:

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.

person Ashutosh Dave    schedule 24.05.2017
comment
Не получил никакой полезной информации при использовании UIDeviceListener (с IOS 10). - person Henric Olsen; 24.05.2017