Skip to content

iOKIt battery data issue #1

@PratikKankriya

Description

@PratikKankriya

We are using iOKit framework for fetching battery info for finding battery wear but on iOS 12 beta we are not able to fetch current capacity & voltage please tell us any alternative framework or how to resolve this issue

Following is the code use :
NSMutableString *allInfo = [NSMutableString new];

CFTypeRef blob = IOPSCopyPowerSourcesInfo();
CFArrayRef sources = IOPSCopyPowerSourcesList(blob);
if (CFArrayGetCount(sources) == 0)
return; // Could not retrieve battery information. System may not have a battery.

NSDictionary limitedBatteryInfo = ((NSDictionary)((NSArray*)CFBridgingRelease(blob))[0]);

[allInfo appendString:@"IOPSCopyPowerSourcesInfo Data\n\n"];

for (NSString* dictKey in [limitedBatteryInfo allKeys]) {
[allInfo appendString:[NSString stringWithFormat:@"%@ : %@",dictKey,[limitedBatteryInfo valueForKey:dictKey]]];
[allInfo appendString:@"\n"];
}

io_service_t powerSource = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPMPowerSource"));

CFMutableDictionaryRef batteryProperties = NULL;

IORegistryEntryCreateCFProperties(powerSource, &batteryProperties, NULL, 0);

NSDictionary *extensiveBatteryInfo = (__bridge_transfer NSDictionary *)batteryProperties;

[allInfo appendString:@"\n\n\nIOPMPowerSource Data\n\n"];

for (NSString* dictKey in [extensiveBatteryInfo allKeys]) {
[allInfo appendString:[NSString stringWithFormat:@"%@ : %@",dictKey,[extensiveBatteryInfo valueForKey:dictKey]]];
[allInfo appendString:@"\n"];
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions