Я узнал, что если вы используете getIntExtra («напряжение», -1) в широковещательном приемнике, прослушивающем ACTION_BATTERY_CHANGED. Это дает вам мВ. На самом деле у меня есть два вопроса.
1. Кто-нибудь знает, как я могу захватить напряжение в любой момент времени, не полагаясь на самое последнее обновление от моего вещательного приемника?
2. Кто-нибудь знает, действительно ли это значение является достаточно надежным для измерения расхода батареи за промежуток времени?Напряжение аккумуляторной батареи напрямую соответствует ее уровню/проценту?
ответ
Я могу ответить на вопрос 2 и вопрос в вашем названии - большинство мобильных устройств используют литиево-ионные батареи, а необработанное напряжение батареи имеет очень нелинейную зависимость от того, сколько у него осталось (т. Е.% Заряженных/разряженных).
Посмотрите на graph here, показывающий напряжение на литий-ионной ячейке против мощности слева. Вы можете видеть, что напряжение остается примерно постоянным (небольшой тренд вниз) от полной батареи до батареи около 10% емкости, а затем резко падает.
@ChrisStratton отмечает в комментарии, что график не для современного устройства и говорит, что они существенно отличаются и могут быть легче определить состояние заряда от напряжения. К сожалению, я не смог найти ссылку на похожие графики для современной батареи мобильного телефона. Однако можно видеть, что модельное состояние заряда от напряжения разомкнутой цепи (OCV-SOC) остается вопросом active academic research.
Пункт все еще утверждает, что использование напряжения для оценки состояния заряда является нетривиальным.
Изготовители Android несут ответственность за реализацию на их версии Android, ROM модели разряда батареи для используемой ими батареи, которая позднее будет использоваться Android SDK, см. here. Вы также можете использовать
$ adb shell dumpsys batterystats
1 - Я думаю, что трансляция является единственным способом, чтобы получить его. Некоторые люди говорят, что вы читаете файл в/sys/class/power_supply/battery/batt_current, но не у всех телефонов Android.
2 - Основанный только на напряжении, трудно рассчитать расход батареи, это не линейные отношения, и отличается от батареи к батарее.
Очень информативно, спасибо – JayB
Этот ответ на самом деле побеждает цель просить ответа на первый вопрос. поэтому я собираюсь принять ваш ответ и называть его здесь – JayB
Хотя верно, что связь между напряжением и оставшимся зарядом нетривиальна, связанный граф даже не дистанционно не соответствует типу ячеек, используемых в современных телефонах, чья разрядка существенно легче интерпретировать. –