用广播(BroadcastReceiver)监听电池的变化
来源:互联网 发布:敏感词过滤java 编辑:程序博客网 时间:2024/05/14 15:50
如果我们想要监听电池电量的变化,只是使用监听事件的话,当我们程序没有运行,就监听不到电池电量的改变,这时候就需要使用广播了,这里就介绍一下广播监听电池的使用,以及一些电池的属性
<pre name="code" class="java">package com.example.butterydemo;import android.os.BatteryManager;import android.os.Bundle;import android.util.Log;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;public class MainActivity extends Activity {BatteryBroadcast bb;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/* * 代码注册 */// 创建广播对象bb = new BatteryBroadcast();// 创建意图对象IntentFilter iFilter = new IntentFilter();// 添加电池改变的活动iFilter.addAction(Intent.ACTION_BATTERY_CHANGED);registerReceiver(bb, iFilter);}@Overrideprotected void onDestroy() {super.onDestroy();//注销unregisterReceiver(bb);}/** * 监控电池的广播 */public class BatteryBroadcast extends BroadcastReceiver {/** * 当电池电量发生改变时会执行此方法 */@Overridepublic void onReceive(Context context/* 触发广播的Activity */, Intent intent/* 触发广播的意图 */) {Bundle extras = intent.getExtras();//获取意图中所有的附加信息//获取当前电量,总电量int level = extras.getInt(BatteryManager.EXTRA_LEVEL/*当前电量*/, 0);int total = extras.getInt(BatteryManager.EXTRA_SCALE/*总电量*/, 100);//电池温度温度int temperature = extras.getInt(BatteryManager.EXTRA_TEMPERATURE/*电池温度*/);Log.d("温度", temperature+"");Log.e("电量", level+"");Log.wtf("电量", total+"");//电池状态int status = extras.getInt(BatteryManager.EXTRA_STATUS/*电池状态*/);switch (status) {case BatteryManager.BATTERY_STATUS_CHARGING://充电break;case BatteryManager.BATTERY_STATUS_DISCHARGING://放电break;case BatteryManager.BATTERY_STATUS_FULL://充满break;//BatteryManager.BATTERY_STATUS_NOT_CHARGING,未充电,包括放电和充满//BATTERY_STATUS_UNKNOWN:未知状态default:break;}//电池健康程度int health = extras.getInt(BatteryManager.EXTRA_HEALTH);switch (health) {case BatteryManager.BATTERY_HEALTH_GOOD://健康状态break;case BatteryManager.BATTERY_HEALTH_OVERHEAT://过热break;case BatteryManager.BATTERY_HEALTH_COLD://过冷break;case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE://电压过高break;default://其他三个放在default中。dead、unknown、unspecial failurebreak;}}}}
0 0
- 用广播(BroadcastReceiver)监听电池的变化
- 监听电池变化的广播中携带的数据:Intent.ACTION_BATTERY_CHANGED
- 监听网络变化的广播
- IOS中电池变化的监听
- Android中监听电池变化
- 广播监听网络变化
- 监听开机,电量变化,信号变化的广播
- Android广播接收 BroadcastReceiver监听系统全局的Broadcast消息
- android--解决方案--用BroadcastReceiver监听手机网络状态变化
- 【android】解决方案--用BroadcastReceiver监听手机网络状态变化
- 使用广播监听网络变化
- 使用广播接受者BroadcastReceiver监测网络变化
- 【android】监听网络变化连续多个广播的问题解决
- 【Android】利用广播BroadCast监听网络的变化
- 接受短信广播和监听短信数据库变化的方法
- Android监听时间变化的广播,只能动态注册
- 监听系统有apk变化的系统级广播
- Android---动态注册监听网路变化的广播
- 多路温度采集控制系统(5)进程通信
- Hello Mr.J——shiro+cas
- BZOJ1196: [HNOI2006]公路修建问题 二分+Kruskal
- HDU 5821 Ball(贪心)
- 进程与线程
- 用广播(BroadcastReceiver)监听电池的变化
- 听北大公开课庄明科老师《大学生职业素养提升》第一集:《自我效能感》的笔记
- 华为机考题 003明明的随机数
- apache编译安装,解决configure: error: APR not found . Please read the documentation问题!
- 单线程端口扫描
- Android Java混淆(ProGuard)
- 推荐算法1-content based recommendation
- 永远要设定deadline,完成比完美更重要
- Shell每日闪记1