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();}}
- Android电源管理,低电量报警
- mtk android smartphone方案 低电量报警
- android低电量处理流程
- Android低电量处理流程
- android 2.3 电量管理
- android 2.3 电量管理
- android 电量管理
- android 2.3 电量管理
- android 2.3 电量管理
- android电量管理
- Android中低电量的处理方法 .
- Android平板电量过低提醒
- Android中低电量的处理方法
- Android中低电量的处置方法
- Android Low Battery 低电量处理流程
- Android 中低电量的处理方法
- Android Low Battery 低电量处理流程
- STM32电源管理与低功耗模式
- jboss 和 jms
- js+弹出窗口++总结
- 错误“std”: 具有该名称的命名空间不存在”
- 【MTK】VS2008无法找到调试信息的解决方案
- 用busybox制作根文件系统
- Android电源管理,低电量报警
- java类型转换总结
- 中间件介绍
- 使用Form个性化修改标准Form的LOV
- 使用Custom.pll修改标准Form的LOV
- 百度ting!正式发布beta版Android手机客户端
- 中间件类型
- Javascript中的命名空间
- 利用表格自动扩充表格区域代码