Java 需要快速检查电池估计器代码吗
我正在制作电池管理器-它几乎完成了,但我想有一个电池估计器,它将显示我的电池将运行我的电话多长时间 我只想知道最简单的方法,我很清楚这只是一个近似值Java 需要快速检查电池估计器代码吗,java,android,Java,Android,我正在制作电池管理器-它几乎完成了,但我想有一个电池估计器,它将显示我的电池将运行我的电话多长时间 我只想知道最简单的方法,我很清楚这只是一个近似值 public void onCreate() { BroadcastReceiver batteryReceiver = new BroadcastReceiver() { int scale = -1; int level = -1; int voltage = -1; int temp = -1; @Ov
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);
}
我的java中有这行代码,当我在我的设备上运行这个应用程序时,它显示什么都没有。我应该在这里或xml文件中更改/添加什么
此代码取自:该代码(按原样)只将消息写入日志,因此您在设备上看不到任何内容也就不足为奇了。您必须将它获得的数字(或从中派生的数字)插入应用程序的GUI。正如链接的问题所强调的,客户剩余寿命的估计很容易出错,因为你不知道用户下一步会做什么(因此剩余费用会持续多久)。您所能做的就是保存电池电量的历史数据与时间,尝试“根据最后1/2/4小时的使用情况,剩余电池将持续xx小时”。谢谢您的回答,这有助于我了解当前情况。我还有一个问题:试着获取电池的当前电压,几秒钟后再获取一次,这样就不会花费太多时间来获取信息。我只想做一些类似的事情:点击一个按钮,几秒钟后它会给我答案,是否可能有一个不超过+/-30分钟的适当时间间隔?因为根据你所说的,它需要一些数据库,使其更加复杂,我还不太喜欢创建数据库:/有两个方面:(1)测量过去的使用情况和(2)预测未来的使用情况。第二,正如你最初的链接所暗示的,充其量只能是一个有根据的猜测。首先,你可以用相隔几秒钟的两个读数来估计过去的使用情况,但这只能给你一个在短时间内使用情况的“快照”:如果在这段时间内出现了一个需要CPU的应用程序或服务,这将扭曲数据:读数之间的较长时间将平均这些变化。您不需要存储多个读数/cont/cont…打开应用程序后立即阅读并记住这一点。然后在几秒钟后重新读取一个新读数,对电池使用情况进行一个非常粗略的“瞬时”测量。定期读取新读数,并根据原始读数重新计算使用量。随着时间的推移,“电池使用率”的平均值将变为一个信息量更大的数字。这段代码(按原样)只向日志中写入一条消息,因此在设备上看不到任何东西也就不足为奇了。您必须将它获得的数字(或从中派生的数字)插入应用程序的GUI。正如链接的问题所强调的,客户剩余寿命的估计很容易出错,因为你不知道用户下一步会做什么(因此剩余费用会持续多久)。您所能做的就是保存电池电量的历史数据与时间,尝试“根据最后1/2/4小时的使用情况,剩余电池将持续xx小时”。谢谢您的回答,这有助于我了解当前情况。我还有一个问题:试着获取电池的当前电压,几秒钟后再获取一次,这样就不会花费太多时间来获取信息。我只想做一些类似的事情:点击一个按钮,几秒钟后它会给我答案,是否可能有一个不超过+/-30分钟的适当时间间隔?因为根据你所说的,它需要一些数据库,使其更加复杂,我还不太喜欢创建数据库:/有两个方面:(1)测量过去的使用情况和(2)预测未来的使用情况。第二,正如你最初的链接所暗示的,充其量只能是一个有根据的猜测。首先,你可以用相隔几秒钟的两个读数来估计过去的使用情况,但这只能给你一个在短时间内使用情况的“快照”:如果在这段时间内出现了一个需要CPU的应用程序或服务,这将扭曲数据:读数之间的较长时间将平均这些变化。您不需要存储多个读数/cont/cont…打开应用程序后立即阅读并记住这一点。然后在几秒钟后重新读取一个新读数,对电池使用情况进行一个非常粗略的“瞬时”测量。定期读取新读数,并根据原始读数重新计算使用量。随着时间的推移,“电池使用率”将趋于平均,从而得出一个信息量更大的数字。