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);
Другие вопросы по тегам