电池使用时间计算

3
我想知道是否有针对手机设备(例如iPhone、iPad、Android手机等)计算剩余电池时间的库?或者是否可以根据以下属性合理地做出关于电池使用情况的假设:
  • 屏幕亮度
  • 无线电使用情况(网络、WIFI/3G/4G/蓝牙)
  • 用户交互级别
  • CPU利用率
我认为通过研究这些属性是如何影响电池寿命,以此来开发某种库以警告用户低电量水平,从而能够知道用户需要使用设备多长时间。然后可以:
  • 要求用户降低屏幕亮度
  • 要求用户关闭WIFI/3G(或切换)
  • 自动降低任何网络操作的更新轮询频率
尽管我对物理和电子学知识有限,但我认为这应该是可行的。我已经尝试过谷歌搜索但没有找到类似的内容。

不是库,但对于iPhone来说有很多应用程序可以告诉你还剩下多少通话时间等等,也许你可以联系这些应用程序的开发者。 - Robin
我已经考虑过了,希望他们能够帮助我。甚至可以共同努力开发跨平台的东西。 - Piotr
您可以从设置>关于>电池>电池使用情况中查看一些统计数据。显示器、系统、无线电等都会显示……不知道是否有直接访问统计数据的方法。 - stealthcopter
嗨@PiotrBlasiak,你得到了你的问题的答案吗?我问这个是因为我也在做类似的项目。你能告诉我任何可以帮助我完成这个项目的东西吗?谢谢。 - Asim Habib
1个回答

4

这个功能开发起来非常困难,因为它依赖于许多因素。你最好为每个特定平台实现本地电池通知。一些平台提供了关于电量消耗和剩余电池寿命的相当全面的信息。这可能会导致更好的估计并节省大量工作 :)

例如iPhone:

UIDevice *device = [UIDevice currentDevice];
device.batteryMonitoringEnabled = YES;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@”UIDeviceBatteryLevelDidChangeNotification” object:device];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@”UIDeviceBatteryStateDidChangeNotification” object:device];

每下降5%的电池电量会触发UIDeviceBatteryLevelDidChangeNotification。如果你知道设备在5%电池电量上能工作多长时间,就可以估算它在剩余电量上能工作多久。根据我的经验,这种方法能得出相当可靠的估计结果。
在这种情况下,当你的应用程序检测到电池快速耗尽时,你可以检查哪些耗电功能是开启的,建议用户禁用已开启的功能(如WiFi、高亮度等)。
此外,那些不断检查许多系统变量的应用程序会消耗相当多的电力。这使得你的应用程序从节省电力的角度来看有点“不划算”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接