如何获取电量消耗
UIDevice 获取
- (float)batteryValue {
[UIDevice currentDevice].batteryMonitoringEnabled = YES;
return [UIDevice currentDevice].batteryLevel;
}
这个值以0.05
递变的,所以并不精准。
IOKit
在IOKit Framework
是专门用于硬件和内核通信的,我们可以通过IOKit Framework
来获取设备电量信息。
IOKit Framework
在iOS库中头没有,我们可以找到Mac端的库,里面有相关的头文件。
例如/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework
或者你可以从我的 百度网盘下载
链接:https://pan.baidu.com/s/1vh6SyCSVz_kz4j-eazNJIA
密码:3gdv
IOPowerSources.h
和IOPSKeys.h
我们可以使用,同时需要将IOKit.framework
拖入工程。
//获取电池能量
- (double)getCurrentBatteryLevel {
[UIDevice currentDevice].batteryMonitoringEnabled = YES;
CFTypeRef blob = IOPSCopyPowerSourcesInfo();
CFArrayRef sources = IOPSCopyPowerSourcesList(blob);
CFDictionaryRef pSource = NULL;
const void *psValue;
long numOfSources = CFArrayGetCount(sources);
if (numOf