2

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

4

3 回答 3

1

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

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

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

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

我希望它可以帮助你。

于 2012-11-22T12:28:55.373 回答
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);
}
于 2012-11-22T12:27:06.797 回答
0

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

于 2020-10-04T11:43:41.850 回答