IOS程序中代码获取当前设备电量

来源:互联网 发布:ug软件安装 编辑:程序博客网 时间:2024/05/28 05:13

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);

        [_circleChartsetProgress:percent/100animated:YES];

        [_titleLabelsetHidden:NO];

       _titleLabel.frame=CGRectMake(0,0, r, r);

       _titleLabel.text=[NSStringstringWithFormat:@"%.0f%%",percent];

        [_titleLabelsetCenter:CGPointMake(r/2+_circleChart.frame.origin.x,r+_circleChart.frame.origin.y-80)];

        [_gradeLabelsetHidden:NO];

       _gradeLabel.frame=CGRectMake(0,0, r, r);

       _gradeLabel.text=@"当前电量";

        [_gradeLabelsetCenter:CGPointMake(r/2+_circleChart.frame.origin.x,r-40+_circleChart.frame.origin.y)];


       return percent;

    }

   return -1.0f;

}

0 0
原创粉丝点击