2016-01-10 6 views
1

Для моего приложения для Android мне нужно следить за потреблением батареи для всех телефонов, на которых запущено приложение. В приложении должна быть кнопка для запуска мониторинга и ее остановки, а после остановки мониторинга вывод монитора батареи должен быть сохранен как txt на самом телефоне. Я уже посмотрел на батареи, но в соответствии с документацией процесс мониторинга инициируется подключением устройства к ПК и после проверки повторного подключения устройства и создания дампа.Мониторинг батареи Android-приложения

. Можно ли запустить и остановить мониторинг без подключения к компьютеру и сохранить вывод локально на телефоне?

ответ

1

Вы можете использовать широковещательный приемник для получения информации о вашей батарее при изменении.

private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context ctx, Intent intent) { 

      mLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, Const.VALUE_UNSET); 
      mTemperature = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, Const.VALUE_UNSET); 
      mStatus = intent.getIntExtra(BatteryManager.EXTRA_STATUS, Const.VALUE_UNSET); 
      mPlugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, Const.VALUE_UNSET); 
      mScale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, Const.VALUE_UNSET); 
      mHealth = intent.getIntExtra(BatteryManager.EXTRA_HEALTH, Const.VALUE_UNSET); 
      mVoltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, Const.VALUE_UNSET); 
      mTechnology = intent.getStringExtra(BatteryManager.EXTRA_TECHNOLOGY); 
} 

Не забудьте (un-) зарегистрировать приемник в своей деятельности (или службе, если она должна работать в фоновом режиме).

Регистрация (OnCreate/OnStart ...):

registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 

Разрегистрировать (OnPause/onDestory):

unregisterReceiver(...) 

Запись в файл не должен быть слишком трудно, просто найти здесь SO и не забудьте установить разрешения (для работы с файлами также):

<uses-permission android:name="android.permission.BATTERY_STATS"/> 
Смежные вопросы