【问题标题】:Remaining time to battery discharge on androidandroid上电池放电的剩余时间
【发布时间】:2012-11-22 12:24:03
【问题描述】:

我正在寻找一个代码,用于估计/猜测 android 手机电池完全放电之前的剩余时间。我的搜索结果充满了可用的应用程序,还有一个普遍的评论是计算它几乎没用。但是我需要代码。任何帮助,即使是粗略的 sn-p,都可以帮助您入门。

【问题讨论】:

  • 下面的人是对的,你猜不出来。但是你可以粗略地计算一下,每次下降 1%。计算下降 1% 需要多长时间,然后看看他们还剩下多少 %。每 1% 做一次检查?

标签: android battery


【解决方案1】:

您无法准确猜测电池放电还剩多少时间,因为可能有不同的应用程序或服务消耗电池。因此它可能会有所不同。

但是,您可以通过为操作 Intent.ACTION_BATTERY_CHANGED 注册接收器来借助广播接收器获得电池寿命。我的答案只是关键,从 Android 开发者网站获取信息。

通过在 BroadcastReceiver 的 onReceive() 方法中使用以下语句和上述 Intent 操作,您将获得当前可用的电池电量(例如,50%、60% 等)。但是您无法估计剩余时间,因为某些应用程序可能会消耗更多电量。所以我认为电池电量到剩余时间的转换不会给出正确的结果。

battery_level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);

希望对你有帮助。

【讨论】:

  • 所以,我正在尝试使用基于从 100% 到 99% 乘以 99 的时间进行推断的方法来计算剩余时间。为此,我需要从系统获取电池状态,但我无法获取意图 ACTION_BATTERY_CHANGED。无论何时发送,我如何确保我得到这个。我想在上次发送时获取它的值。我已经在最多的地方添加了这个:
【解决方案2】:
@Override
public void onCreate() {
    BroadcastReceiver batteryReceiver = new BroadcastReceiver() {
        int scale = -1;
        int level = -1;
        int voltage = -1;
        int temp = -1;
        @Override
        public void onReceive(Context context, Intent intent) {
            level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
            scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
            temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
            voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
            Log.e("BatteryManager", "level is "+level+"/"+scale+", temp is "+temp+", voltage is "+voltage);
        }
    };
    IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    registerReceiver(batteryReceiver, filter);
}

【讨论】:

    【解决方案3】:

    任何人几乎不可能计算出任何人的确切时间。 第一个问题:我们不知道电池的型号和它到目前为止所经历的循环,这就是电池的健康状况。 哪个应用程序消耗更多或更少的电量我们不知道。 因此,您需要至少运行该应用程序 10 天才能获取所有这些数据,并且您需要定期修改数据,然后才能正确估计。 所以它是一个高级应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      相关资源
      最近更新 更多