相关疑难解决方法(0)

如何在iOS上以1%的粒度获得实时电池电量

我正在使用此功能获取设备的当前电池电量:

[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
UIDevice *myDevice = [UIDevice currentDevice];

[myDevice setBatteryMonitoringEnabled:YES];
double batLeft = (float)[myDevice batteryLevel]; 
NSLog(@"%f",batLeft);
Run Code Online (Sandbox Code Playgroud)

但结果的粒度为5%.示例:当手机电池电量为88%时,它仅记录0.85的值.batteryLevel仅以0.05为增量返回值.例如:0.85,0.9,0.95并且永远不会返回0.82或0.83之类的值.

是否有任何解决方案可以获得更高精度的百分比?

iphone cocoa-touch

15
推荐指数
2
解决办法
3万
查看次数

iPhone4 iOS5电池电量监控我需要添加setBatteryMonitoringEnabled:NO来定期进行电池检查吗?

我正在运行一个应用程序,可以在一夜之间对加速计和陀螺仪数据进行采样.这是一个非常耗电的操作,我想教我的应用程序识别电池电量不足的时间.

这是我的原型代码,它每10分钟检查一次电池电量

NSDate* date = [NSDate date];
      if((int)([date timeIntervalSinceReferenceDate])%600 == 0)
            {
                UIDevice *myDevice = [UIDevice currentDevice];
                [myDevice setBatteryMonitoringEnabled:YES];
                float batLeft = [myDevice batteryLevel]; 
                int batinfo=(batLeft*100);

            [self postStatusMessageWithTitle:nil
                                 description:[NSString stringWithFormat:@"%@ battery level: %i",[dateFormat stringFromDate:dateShow],batinfo]];
                [myDevice setBatteryMonitoringEnabled:NO];
            }
Run Code Online (Sandbox Code Playgroud)

我的问题是:我是否需要将此行添加到代码的末尾:

[myDevice setBatteryMonitoringEnabled:NO];
Run Code Online (Sandbox Code Playgroud)

似乎在那里执行电池检查,没有异步委托调用.将值设置为NO可以节省电池,而无需在一夜之间监控电池电量吗?将它设置为NO可以解决任何问题吗?

谢谢你的任何输入!

objective-c power-management iphone-4 ios5

3
推荐指数
1
解决办法
3408
查看次数