如果我们注册了对Intent.ACTION_BATTERY_CHANGED的监听,那么我们马上会收到一个Action为Intent.ACTION_BATTERY_CHANGED的intent,之后只要我们没有取消监听,电池发送变化,我们会收到这样的intent.

通过该intent的extra我们可以取得电池的很多信息,比如电压/ 当前电池的健康状况 等等。

比如电压可以用如下的方式:

int voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);

(1) EXTRA_HEALTH: 当前电池的健康状态

可能的取值:

BATTERY_HEALTH_COLD

BATTERY_HEALTH_DEAD

BATTERY_HEALTH_GOOD

BATTERY_HEALTH_OVERHEAT

BATTERY_HEALTH_OVER_VOLTAGE

BATTERY_HEALTH_UNKNOWN

BATTERY_HEALTH_UNSPECIFIED_FAILURE

(2)EXTRA_ICON_SMALL:当前用于表示电池状态的icon的资源id

(3)EXTRA_LEVEL: 电池当前的电量

(4) EXTRA_PLUGGED: 当前手机使用的是哪里的电源

可能的取值:

BATTERY_PLUGGED_AC

BATTERY_PLUGGED_USB

(5) EXTRA_PRESENT:表示是否提供电池。有些手机在使用USB电源的情况下,即使拔出了电池,仍然可以正常工作

(6) EXTRA_SCALE:表示电池电量的最大值

(7) EXTRA_STATUS:表示电池的当前状态

可能的取值:

BATTERY_STATUS_CHARGING

BATTERY_STATUS_DISCHARGING

BATTERY_STATUS_FULL

BATTERY_STATUS_NOT_CHARGING

BATTERY_STATUS_UNKNOWN

(8) EXTRA_TECHNOLOGY:表示电池使用的技术。比如,对于锂电池是Li-ion

(9) EXTRA_TEMPERATURE:表示当前电池的温度

(10) EXTRA_VOLTAGE:表示当前电池的电压

package com.example.demo;import android.os.BatteryManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.Log;
import android.view.Menu;public class MainActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();unregisterReceiver(mReceiver);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_main, menu);return true;}BroadcastReceiver mReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubint health = intent.getIntExtra(BatteryManager.EXTRA_HEALTH, -1);Log.i("test", "health: " + health);int voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);Log.i("test", "voltage: " + voltage);}};
}

android.os.BatteryManager相关推荐

  1. 异常:android.os.NetworkOnMainThreadException

    Android 4.1项目:使用新浪微博分享时报: android.os.NetworkOnMainThreadException 网上搜索后知道是因为版本问题,在4.0之后在主线程里面执行Http请 ...

  2. android os开机画面,Android简单实现启动画面的方法

    本文实例讲述了Android简单实现启动画面的方法.分享给大家供大家参考,具体如下: 核心代码: package com.demo.app; import android.app.Activity; ...

  3. android.os.NetworkOnMainThreadException

    在执行下面方法加载网络数据时出现以上错误. handler.post(new Runnable(){@Overridepublic void run() {// TODO Auto-generated ...

  4. 如何修复“ android.os.NetworkOnMainThreadException”?

    运行RssReader的Android项目时出现错误. 码: URL url = new URL(urlToRssFeed); SAXParserFactory factory = SAXParser ...

  5. android-解决 Android N 上 报错:android.os.FileUriExposedException

    解决 Android N 上 安装Apk时报错:android.os.FileUriExposedException: file:///storage/emulated/0/Download/appN ...

  6. Caused by: android.os.NetworkOnMainThreadException错误解决办法

    错误Caused by: android.os.NetworkOnMainThreadException :查了下原因上在4.0之后在主线程里面执行Http请求都会报这个错,大概是怕Http请求时间太 ...

  7. android.os.binderproxy cannot be cast to,Android服务android.os.BinderProxy错误

    我一直在尝试使此android服务正常工作,但我不知道为什么会收到此错误. 05-13 12:13:36.203: ERROR/dalvikvm(7782): could not disable co ...

  8. Android之android.os.NewWorkOnMainThreadException解决办法

    1.问题 用别人提供的的sdk的Demo出现android.os.NewWorkOnMainThreadException 2.解决办法 网络请求开启一个线程请求或者开启异步任务都行 3.总结 1. ...

  9. Android之解决java.lang.NoSuchMethodError:android.os.powerManager.isInteractive问题

    1.问题 再三星平板(Android 4.2.2系统)我们代码powerManager调用了函数isInteractive方法,出现下面错误     java.lang.NoSuchMethodErr ...

最新文章

  1. 一些linux下的性能监测工具
  2. 掌握生信技术,玩转生态与地理领域的科研套路
  3. 【数据结构与算法】之深入解析“戳气球”的求解思路与算法示例
  4. 第5次基金申请终于中了!这个血泪教训一定要避免
  5. 521忘记送大家礼物了,补上!
  6. 变量的三重属性_TypeScript基础入门 - 变量声明(三)
  7. 遍历删除List中的元素,会报错? 用iterator.remove() 完美解决
  8. XPath 简单语法
  9. springboot实现查询手机号归属地
  10. 别再用QQ的破数字邮箱了,你其实还有注册姓名全拼微软邮箱的机会
  11. android鲁班压缩
  12. 第一周CorelDRAW课
  13. SpringCLoud+redis+es高并发项目《九》(Spring Security Oauth2 JWT)
  14. saltstack实战--远程执行之返回(returner)
  15. python怎么模拟点击网页按钮?
  16. 计算机更新好不,Win10自动更新好不好有必要吗?如何关闭屏蔽Windows更新?
  17. 为什么大数据与云计算密不可分?
  18. 移动平台动画设计的12个原则
  19. 来自学长的快乐AK题——Day8 荒地追猎
  20. chrome android远程调试工作原理

热门文章

  1. uni-app关于uni.navigateTo的坑以及解决方案
  2. ZABBIX(三) zabbix 支持的主要监控方式
  3. 转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名...
  4. 开源配置管理系统的选择和搭建
  5. 大数据-------元数据管理
  6. android 浏览器控件
  7. Android--BroadcastReceiver
  8. 项目 --- 《水晶报表》
  9. IE显示对象不支持此属性或方法 的解决方法
  10. 技术总结-技术方案模板