2011-02-24 97 views
3

我想知道是否有任何图书馆计算iPhone,iPad,Android手机等移动设备上的剩余电池时间?或者,如果有做取决于样特性电池使用任何合理假设的希望:电池时间计算

  • 屏幕亮度
  • 无线电设备使用(网络,WIFI/3G/4G /蓝牙)
  • 用户交互水平
  • CPU利用率

我想,这可能是可能找出这些属性如何影响电池寿命,并以这种方式能够开发一些类库,能够提醒用户如果您知道用户需要多长时间才能使用该设备,则可能会导致电池电量不足。 那么你可以:

  • 询问用户以降低屏幕亮度
  • 要求用户关闭WiFi/3G(或开关)
  • 自动降低任何网络操作的更新轮询频率

我对物理和电子学知识有限,但在我看来应该可以做到这一点?我GOOGLE了,没有发现这样的事情。

+0

不是图书馆,但对于iPhone来说,有大量的应用程序会告诉你多少通话时间等你离开了,也许你可以联系这些应用程序的开发人员。 – Robin 2011-02-24 20:15:25

+0

我喜欢那样,希望他们能帮助我。甚至可能联合开发一些跨平台的平台。 – 2011-02-24 20:24:46

+0

您可以从设置>关于>电池>电池使用中找到一些统计数据。显示显示,系统,电台...不知道是否有直接访问统计数据的方法。 – stealthcopter 2011-02-24 21:13:22

回答

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,高亮度等)。

此外,不断检查许多系统变量的应用程序确实消耗了相当大的功率。这使您的应用程序在节能方面“无利可图”。