Android точные изменения уровня заряда батареи?
Я написал заявление, и я хочу знать, сколько батареи он потребляет.
Я тестирую его на смартфоне (ACER Liquid Mt), но я могу только читать уровень заряда батареи с точностью до 1% через менеджер батареи.
Потребуется много прогонов, чтобы снизить процент с 1%. Поэтому мой вопрос таков: возможно ли получить более точный уровень заряда батареи и можно ли доверять ее уровню?
Я читал некоторые вещи, которые уровень заряда батареи в программном обеспечении не будет очень точным.
1 ответ
Потребуется много пробежек, чтобы процентное уменьшение уменьшилось на 1%, но это не значит, что оно неточное. Возможно, батарея очень долговечная. И потому что это в процентах, 1 процент заряда батареи может быть много энергии.
Для получения уровня заряда батареи я использую BroadcastReceiver, вы можете попробовать его и посмотреть, достаточно ли он точен:
class BatteryLifeBroadcastReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
int level = intent.getIntExtra("level", 0);
int scale = intent.getIntExtra("scale", 100);
int batteryLevel = (float) level / scale;
// use batteryLevel...
}
}
}
// register the receiver in Activity.onResume()
registerReceiver(mBatteryLifeBroadcastReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// unregister it in Activity.onPause()
unregisterReceiver(mBatteryLifeBroadcastReceiver);