Android上电池放电的剩余时间

enyaitl3  于 2023-10-14  发布在  Android
关注(0)|答案(2)|浏览(102)

我正在寻找一个估计/猜测Android手机电池完全放电前剩余时间的代码。我的搜索结果充满了可用的应用程序,也有一个共同的评论,即计算它几乎是无用的。我需要代码。任何帮助,即使是一个粗略的片段,将做的开始。

wb1gzix0

wb1gzix01#

您无法准确猜测电池放电的剩余时间,因为可能有不同的应用或服务消耗电池。因此它可以变化。
但是,您可以通过为action Intent.ACTION_BATTERY_CHANGED注册一个接收器,在广播接收器的帮助下获得电池寿命。我的答案是关键,从Android开发者网站获取信息。
通过在BroadcastReceiver的onReceive()方法中使用下面的语句和上面的Intent操作,您将获得当前可用的电池电量(例如,50%,60%等)。但您无法估计剩余时间,因为某些应用程序可能会消耗更多电量。因此,我认为电池水平剩余时间转换不会给给予正确的结果。

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

我希望它能帮助你。

owfi6suc

owfi6suc2#

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

相关问题