Android电源管理,低电量报警

来源:互联网 发布:linux下安装wine 编辑:程序博客网 时间:2024/04/20 02:23

Source code:

package com.inanwong.main;import java.util.Timer;import java.util.TimerTask;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.util.Log;public class PhoneBatTask {private static final int TIME_SPACE_DELAY = 1000;public static final int TIME_SPACE_PERIOD = 1800 * 1000;public static final int PB_LOWFLAG = 15;private Context context = null;private int intLevel = 100;private int intScale = 100;private int timeInterval = TIME_SPACE_PERIOD;private int lowFlag = PB_LOWFLAG;private boolean isStartRegister = false;private TimerTask batTask = new TimerTask() {@Overridepublic void run() {if (!isStartRegister) {timer.cancel();return;}disposePower(intLevel, intScale);}};private final Timer timer = new Timer();/* create BroadcastReceiver */private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {public void onReceive(Context context, Intent intent) {String action = intent.getAction();if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {intLevel = intent.getIntExtra("level", 0);intScale = intent.getIntExtra("scale", 100);}}};private static final String TAG = "[PhoneBatTask]";PhoneBatTask() {// TODO Auto-generated constructor stub}public PhoneBatTask(Context context, int timeInterval, int lowFlag) {this.context = context;this.timeInterval = timeInterval;this.lowFlag = lowFlag;}public boolean registerBatterBroadCast() {boolean flag = false;try {this.context.registerReceiver(mBatteryInfoReceiver,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));flag = true;isStartRegister = true;timer.schedule(batTask, TIME_SPACE_DELAY, timeInterval);} catch (Exception e) {e.printStackTrace();}Log.i(TAG, toString());return flag;}@SuppressWarnings("unused")private boolean unregisterBatterBroadCast() {boolean flag = false;try {this.context.unregisterReceiver(mBatteryInfoReceiver);flag = true;isStartRegister = false;timer.cancel();} catch (Exception e) {e.printStackTrace();}return flag;}public synchronized void disposePower(int intLevel, int intScale) {if ((intLevel * 100) < (lowFlag * intScale)) {// do sth for power low ...}Log.i(TAG, "intLevel = " + intLevel + "; intScale = " + intScale);}public void setTimeInterval(int timeInterval) {if (this.timeInterval == timeInterval) {return;}if (isStartRegister) {this.timeInterval = timeInterval;timer.cancel();batTask.cancel();timer.schedule(batTask, TIME_SPACE_DELAY, timeInterval);}Log.i(TAG, toString());}public void setLowFlag(int lowFlag) {this.lowFlag = lowFlag;}@Overridepublic String toString() {// TODO Auto-generated method stubStringBuilder b = new StringBuilder();b.append("{ timeInterval=");b.append(timeInterval);b.append(" lowFlag=");b.append(lowFlag);b.append(" intLevel=");b.append(intLevel);b.append(" intScale=");b.append(intScale);b.append(" }");return b.toString();}}


 

原创粉丝点击