【问题标题】:Battery time calculation电池时间计算
【发布时间】:2011-02-24 19:34:42
【问题描述】:

我想知道是否有任何库可以计算 iPhone、iPad、Android 手机等移动设备上的剩余电池时间?或者,如果有希望根据以下属性对电池使用情况做出任何合理的假设:

  • 屏幕亮度
  • 无线电使用(网络、WIFI/3G/4G/蓝牙)
  • 用户交互级别
  • CPU 利用率

我认为有可能找出这些属性如何影响电池寿命,并通过这种方式开发某种库,以便在您知道电池电量持续多长时间时能够警告用户电池电量不足。用户将需要使用该设备。 然后你可以:

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

我对物理和电子学的了解有限,但在我看来应该可以做到这一点?我用谷歌搜索并没有找到类似的东西。

【问题讨论】:

  • 不是图书馆,但对于 iPhone,有大量的应用程序可以告诉您通话时间等。也许您可以联系这些应用程序的开发人员。
  • 我已经想到了这一点,希望他们能够帮助我。甚至可能共同努力开发跨平台的东西。
  • 您可以从设置>关于>电池>电池使用中找到一些统计数据。 Shows display, system, radio... 不知道有没有办法直接访问stats。
  • 嗨@PiotrBlasiak 你得到你问题的答案了吗?我问是因为我也在从事类似的项目。你能告诉我任何可以在这个项目中帮助我的事情吗?谢谢

标签: iphone android ipad blackberry mobile


【解决方案1】:

这个功能真的很难开发,因为它取决于很多因素。您最好为每个特定平台实现本机电池通知。一些平台提供关于功耗和剩余电池寿命的相当全面的信息。这将(可能)产生更好的估计并为您节省大量工作:)

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多