在Android上剩余电池放电时间

时间:2012-11-22 12:24:03

标签: android battery

我正在寻找一个用于估算/猜测Android手机电池完全放电之前剩余时间的代码。我的搜索结果中充满了可用的应用程序以及常见的评论,计算它几乎没用。但是我需要代码。任何帮助,甚至是粗略的片段,都可以用来开始。

3 个答案:

答案 0 :(得分:1)

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

然而,您可以通过注册接收器进行操作Intent.ACTION_BATTERY_CHANGED,在广播接收器的帮助下获得电池寿命。我的回答是关键,从Android开发者网站获取信息。

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

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

我希望它可以帮助你。

答案 1 :(得分:0)

@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);
}

答案 2 :(得分:0)

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