关闭Android电池温度告警框,android电源信息查看(电量、温度、电压)实例代码
本文实例讲述了android电源信息查看方法。分享给大家供大家参考。具体如下:
1. PowerTestActivity:
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.Bundle;
import android.os.PowerManager;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
import java.text.DateFormat;
import java.util.Date;
/**
* So you thought sync used up your battery life.
*/
public class PowerTestActivity extends Activity {
TextView mLog;
DateFormat mDateFormat;
IntentFilter mFilter;
PowerManager.WakeLock mWakeLock;
SpinThread mThread;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set the layout for this activity. You can find it
// in res/layout/hello_activity.xml
setContentView(R.layout.main);
findViewById(R.id.checkbox).setOnClickListener(mClickListener);
mLog = (TextView)findViewById(R.id.log);
mDateFormat = DateFormat.getInstance();
mFilter = new IntentFilter();
mFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
mFilter.addAction(Intent.ACTION_BATTERY_LOW);
mFilter.addAction(Intent.ACTION_BATTERY_OKAY);
mFilter.addAction(Intent.ACTION_POWER_CONNECTED);
PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "BatteryWaster");
mWakeLock.setReferenceCounted(false);
}
@Override
public void onPause() {
stopRunning();
}
View.OnClickListener mClickListener = new View.OnClickListener() {
public void onClick(View v) {
CheckBox checkbox = (CheckBox)v;
if (checkbox.isChecked()) {
startRunning();
} else {
stopRunning();
}
}
};
void startRunning() {
log("Start");
registerReceiver(mReceiver, mFilter);
mWakeLock.acquire();
if (mThread == null) {
mThread = new SpinThread();
mThread.start();
}
}
void stopRunning() {
log("Stop");
unregisterReceiver(mReceiver);
mWakeLock.release();
if (mThread != null) {
mThread.quit();
mThread = null;
}
}
void log(String s) {
mLog.setText(mLog.getText() + "\n" + mDateFormat.format(new Date()) + ": " + s);
}
BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
StringBuffer sb = new StringBuffer();
String action = intent.getAction();
/*
* 如果捕捉到的action是ACTION_BATTERY_CHANGED, 就运行onBatteryInfoReceiver()
*/
if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
sb.append("\n当前电量:").append(intent.getIntExtra("level", 0));
sb.append("\n电池电量:").append(intent.getIntExtra("scale", 100));
// 电池伏数
sb.append("\n当前电压:").append(intent.getIntExtra("voltage", 0));
// 电池温度
sb.append("\n当前温度:").append(
intent.getIntExtra("temperature", 0));
String BatteryStatus = null;
switch (intent.getIntExtra("status",
BatteryManager.BATTERY_STATUS_UNKNOWN)) {
case BatteryManager.BATTERY_STATUS_CHARGING:
BatteryStatus = "充电状态";
break;
case BatteryManager.BATTERY_STATUS_DISCHARGING:
BatteryStatus = "放电状态";
break;
case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
BatteryStatus = "未充电";
break;
case BatteryManager.BATTERY_STATUS_FULL:
BatteryStatus = "充满电";
break;
case BatteryManager.BATTERY_STATUS_UNKNOWN:
BatteryStatus = "未知道状态";
break;
}
sb.append("\n当前状态:").append(BatteryStatus);
String BatteryStatus2 = null;
switch (intent.getIntExtra("plugged",
BatteryManager.BATTERY_PLUGGED_AC)) {
case BatteryManager.BATTERY_PLUGGED_AC:
BatteryStatus2 = "AC充电";
break;
case BatteryManager.BATTERY_PLUGGED_USB:
BatteryStatus2 = "USB充电";
break;
}
sb.append("\n充电方式:").append(BatteryStatus2);
String BatteryTemp = null;
switch (intent.getIntExtra("health",
BatteryManager.BATTERY_HEALTH_UNKNOWN)) {
case BatteryManager.BATTERY_HEALTH_UNKNOWN:
BatteryTemp = "未知错误";
break;
case BatteryManager.BATTERY_HEALTH_GOOD:
BatteryTemp = "状态良好";
break;
case BatteryManager.BATTERY_HEALTH_DEAD:
BatteryTemp = "电池没有电";
break;
case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:
BatteryTemp = "电池电压过高";
break;
case BatteryManager.BATTERY_HEALTH_OVERHEAT:
BatteryTemp = "电池过热";
break;
}
sb.append("\n电池状态:").append(BatteryTemp);
log(sb.toString());
}
}
};
class SpinThread extends Thread {
private boolean mStop;
public void quit() {
synchronized (this) {
mStop = true;
}
}
public void run() {
while (true) {
synchronized (this) {
if (mStop) {
return;
}
}
}
}
}
}
2. main.xml:
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="25dp"
android:layout_marginTop="25dp"
android:textSize="18sp"
android:textColor="#ffffffff"
android:text="电源测试"
/>
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_weight="1"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:textSize="12sp"
android:textColor="#ffffffff"
/>
3. AndroidManifest.xml:
package="com.lenovo.android"
android:versionCode="1"
android:versionName="1.0">
android:label="@string/app_name">
希望本文所述对大家的Android程序设计有所帮助。
关闭Android电池温度告警框,android电源信息查看(电量、温度、电压)实例代码相关推荐
- 关闭Android电池温度告警框,android电池温度报警
基于mtk平台的电池温度报警 基本思路:循环读取设备文件,读取到温度值,发送广播给上层应用,广播收到温度值后UI提示.代码如下: #include #include #include #include ...
- android+底部评论框,Android 之BottomsheetDialogFragment仿抖音评论底部弹出对话框效果(实例代码)...
实现的效果图: 自定义Fragment继承BottomSheetDialogFragment 重写它的三个方法: onCreateDialog() onCreateView() onStart() 他 ...
- android home跳转,Android 中按home键和跳转到主界面的实例代码
Android 中按home键和跳转到主界面的实例代码 //home Intent intent= new Intent(Intent.ACTION_MAIN); intent.setFlags(In ...
- android editext下拉框,android实现下拉框和输入框结合
1.如何实现:将一个EditText和ListView+PopupWindow 结合起来.自定义一个EditText,在自定义控件中用PopupWindow实现弹出ListView,已达到想要的效果. ...
- android 带箭头提示框,Android PopupWindow与Tooltip箭头
我看到很多关于通过传递null或新的Drawable()到setBackgroundDrawable()删除PopupWindow的边框的问题.我有相反的问题.我想在我的PopupWindow周围的边 ...
- android 画空心矩形框,Android实现空心圆角矩形按钮的实例代码
搜索热词 页面上有时会用到背景为空心圆角矩形的Button,可以通过xml绘制出来. drawrable文件夹下bg_red_hollow_rectangle.xml android:shape=&q ...
- android自定义金额输入键盘_Android 自定义输入支付密码的软键盘实例代码
Android 自定义输入支付密码的软键盘 有项目需求需要做一个密码锁功能,还有自己的软键盘,类似与支付宝那种,这里是整理的资料,大家可以看下,如有错误,欢迎留言指正 需求:要实现类似支付宝的输入支付 ...
- android 弹出编辑框,Android编程实现的EditText弹出打开和关闭工具类
本文实例讲述了Android编程实现的EditText弹出打开和关闭工具类.分享给大家供大家参考,具体如下: 需求: 使用代码实现Android的输入框EditText对键盘的关闭弹出的实现. 代码: ...
- android 电池续航时间,高端Android手机电池续航排行榜Droid居榜首
无论你的手机屏幕多么大.性能配置多么高,电池没电了一切都是白搭.上周诺基亚的调查中已经显示了绝大多数用户最为看重的还是电池续航能力,Laptopmag网站今天放出了一份Android智能手机的电池续航 ...
最新文章
- 1 张图,拆解阿里 P8高级架构师必会技术栈!
- Vue封装一个简单轻量的上传文件组件
- 成功解决preprocessing\label.py:151: DeprecationWarning: The truth value of an empty array is ambiguous.
- GBrowse配置相关资料
- 【PMP】项目风险管理~重点知识
- 使用 ABAP 控制 Android 原生应用
- DOM-9 【实战】模块化开发Todolist(面向过程)
- POJ3764-The xor-longest Path【Trie(字典树)】
- python手机编译器可以干什么_Python是什么?Python学习用哪些编译器?
- 图片马赛克去除工具_图片太多该如何进行排版呢?
- 摇杆控制LED灯的亮度
- 网钛CMS PHP版蓝色响应式UI美化模板
- (c语言)近似计算π
- IntelliJ IDEA设置--类代码模板自定义(注释)
- 苹果手机怎么编程c语言,C语言编程ios版下载_C语言编程苹果版
- iOS Zip文件解压
- windows xp下无线网卡断线的问题。
- python爬取『大年初一』热映电影,以『可视化及词云秀』方式带你了解热映电影...
- express 验证码功能
- 银行业务分析(数据整合)
热门文章
- windows服务器网站日志,windows服务器网站日志文件
- oracle 11gdata guard,Oracle 11g Data Guard配置
- 凡事多找找自己的原因_布袋除尘器灰斗积粉过多、堵灰该咋办?别急,从这8个方面找原因...
- 小程序确定取消弹窗_浅析微信小程序modal弹窗关闭默认会执行cancel问题
- Java常用类(3)--Java比较器Comparable、Comparator类
- 51nod1040 最大公约数之和,欧拉函数或积性函数
- 一些常用正则表达式片段的分析
- 【CSS】font样式简写(转)- 不是很建议简写
- 【Android】自带Theme
- html 选择不能重复,人生,就是一次无法重复的选择(深度好文)