當發生變化時,您可以使用廣播接收器接收有關電池的信息。
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);
}
不要忘記在您的活動(或服務,如果它應該在後臺運行)註冊接收器。
註冊(的onCreate /在onStart ...):
registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
註銷(在onPause/onDestory):
unregisterReceiver(...)
寫入文件應該不會太難,只是在這裏搜索所以不要忘記設置權限(用於處理文件):
<uses-permission android:name="android.permission.BATTERY_STATS"/>