IOS程序中代码获取当前设备电量
2014-11-21 16:24
295 查看
IOS程序中代码获取当前设备电量
方法一:
[UIDevice currentDevice].batteryMonitoringEnabled = YES;
double deviceLevel = [UIDevice currentDevice].batteryLevel;
方法二:
也可以自己写一个方法:
// 获取电量
- (double) batteryLevel
{
CFTypeRef blob =
IOPSCopyPowerSourcesInfo();
CFArrayRef sources =
IOPSCopyPowerSourcesList(blob);
CFDictionaryRef pSource =
NULL;
const void *psValue;
int numOfSources =
CFArrayGetCount(sources);
if (numOfSources ==
0) {
NSLog(@"Error in CFArrayGetCount");
return -1.0f;
}
for (int i =
0 ; i < numOfSources ; i++)
{
pSource =
IOPSGetPowerSourceDescription(blob,
CFArrayGetValueAtIndex(sources, i));
if (!pSource) {
NSLog(@"Error in IOPSGetPowerSourceDescription");
return -1.0f;
}
psValue = (CFStringRef)CFDictionaryGetValue(pSource,
CFSTR(kIOPSNameKey));
//int curCapacity = 0;
// int maxCapacity = 0;
float curCapacity =
0;
float maxCapacity =
0;
double percent;
psValue =
CFDictionaryGetValue(pSource,
CFSTR(kIOPSCurrentCapacityKey));
CFNumberGetValue((CFNumberRef)psValue,
kCFNumberFloat32Type, &curCapacity);
psValue =
CFDictionaryGetValue(pSource,
CFSTR(kIOPSMaxCapacityKey));
CFNumberGetValue((CFNumberRef)psValue,
kCFNumberFloat32Type, &maxCapacity);
// NSLog(@"curCapacity:%f-maxCapacity:%f",curCapacity,maxCapacity);
percent = ((double)(curCapacity)/(double)maxCapacity *
100.0f);
[_circleChart
setProgress:percent/100
animated:YES];
[_titleLabel
setHidden:NO];
_titleLabel.frame=CGRectMake(0,
0, r,
r);
_titleLabel.text=[NSString
stringWithFormat:@"%.0f%%",percent];
[_titleLabel
setCenter:CGPointMake(r/2+_circleChart.frame.origin.x,r+_circleChart.frame.origin.y-80)];
[_gradeLabel
setHidden:NO];
_gradeLabel.frame=CGRectMake(0,
0, r,
r);
_gradeLabel.text=@"当前电量";
[_gradeLabel
setCenter:CGPointMake(r/2+_circleChart.frame.origin.x,r-40+_circleChart.frame.origin.y)];
return percent;
}
return -1.0f;
}
方法一:
[UIDevice currentDevice].batteryMonitoringEnabled = YES;
double deviceLevel = [UIDevice currentDevice].batteryLevel;
方法二:
也可以自己写一个方法:
// 获取电量
- (double) batteryLevel
{
CFTypeRef blob =
IOPSCopyPowerSourcesInfo();
CFArrayRef sources =
IOPSCopyPowerSourcesList(blob);
CFDictionaryRef pSource =
NULL;
const void *psValue;
int numOfSources =
CFArrayGetCount(sources);
if (numOfSources ==
0) {
NSLog(@"Error in CFArrayGetCount");
return -1.0f;
}
for (int i =
0 ; i < numOfSources ; i++)
{
pSource =
IOPSGetPowerSourceDescription(blob,
CFArrayGetValueAtIndex(sources, i));
if (!pSource) {
NSLog(@"Error in IOPSGetPowerSourceDescription");
return -1.0f;
}
psValue = (CFStringRef)CFDictionaryGetValue(pSource,
CFSTR(kIOPSNameKey));
//int curCapacity = 0;
// int maxCapacity = 0;
float curCapacity =
0;
float maxCapacity =
0;
double percent;
psValue =
CFDictionaryGetValue(pSource,
CFSTR(kIOPSCurrentCapacityKey));
CFNumberGetValue((CFNumberRef)psValue,
kCFNumberFloat32Type, &curCapacity);
psValue =
CFDictionaryGetValue(pSource,
CFSTR(kIOPSMaxCapacityKey));
CFNumberGetValue((CFNumberRef)psValue,
kCFNumberFloat32Type, &maxCapacity);
// NSLog(@"curCapacity:%f-maxCapacity:%f",curCapacity,maxCapacity);
percent = ((double)(curCapacity)/(double)maxCapacity *
100.0f);
[_circleChart
setProgress:percent/100
animated:YES];
[_titleLabel
setHidden:NO];
_titleLabel.frame=CGRectMake(0,
0, r,
r);
_titleLabel.text=[NSString
stringWithFormat:@"%.0f%%",percent];
[_titleLabel
setCenter:CGPointMake(r/2+_circleChart.frame.origin.x,r+_circleChart.frame.origin.y-80)];
[_gradeLabel
setHidden:NO];
_gradeLabel.frame=CGRectMake(0,
0, r,
r);
_gradeLabel.text=@"当前电量";
[_gradeLabel
setCenter:CGPointMake(r/2+_circleChart.frame.origin.x,r-40+_circleChart.frame.origin.y)];
return percent;
}
return -1.0f;
}
相关文章推荐
- 获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)
- 获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)
- iOS 获取当前设备具体型号(当前支持到iPhone7/iPhone7P )、系统版本、电量、序列号、设备名称、应用相关信息获取等
- 获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)
- 获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)
- 获取iOS设备当前ip地址
- 获取ios设备中已安装程序
- wince程序实现横屏显示、设备当前电量(C#)
- iOS程序发布测试2-获取Tester设备UDID
- iOS获取设备剩余存储空间代码片段
- 获取ios app程序当前可用的剩余内存
- IOS-获取Model(设备型号)、Version(设备版本号)、app(程序版本号)等
- 获取iOS设备当前ip地址
- iOS获取当前设备方向
- IOS-获取Model(设备型号)、Version(设备版本号)、app(程序版本号)等
- iOS程序发布测试2-获取Tester设备UDID
- 获取ios设备当前的系统版本
- iOS程序发布测试之获取Tester设备UDID
- IOS-获取Model(设备型号)、Version(设备版本号)、app(程序版本号)等
- IOS-获取Model(设备型号)、Version(设备版本号)、app(程序版本号)等