Skip to content

iOKIt battery data issue #1

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"];
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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