-
Notifications
You must be signed in to change notification settings - Fork 21
Description
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"];
}