第一种方法:注册广播

IntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_BATTERY_CHANGED);registerReceiver(receiver,filter);
接收到广播后,用getIntExtra("level")和getIntExtra("scale")获得相应值
   
   
这种方法比较被动,需要电量变化系统发出广播才能得到电量


第二种方法: 通过BatteryManager

   
   
BatteryManager batteryManager = (BatteryManager)getSystemService(BATTERY_SERVICE);int battery = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);这种方法可以主动去获取电量,不必被动的等电量变化之后才能获取到第三种方法:使用adb去获取
通过adb shell dumpsys battery,返回结果后有电池的各种信息,其中就包括level(百分比)


注意:

android.intent.action.SCREEN_ON

android.intent.action.SCREEN_OFF

android.intent.action.BATTERY_CHANGED

这两个广播只能动态注册



更多相关文章

  1. 【Android】Android实现截取当前屏幕图片并保存至SDCard
  2. Android无法真正睡眠:服务广播插件等仍激活消耗CPU造成耗电快
  3. Android获取安装包32位签名
  4. 2011.09.26(3)——— android sample之Notepad(带下划线的TestView
  5. 通过 http post 方式上传多张图片
  6. 利用第三方jar包jaudiotagger实现与MediaMetadataRetriever类似
  7. Android(安卓)dumpstate 工具解析
  8. Android实现开机自启动无效问题
  9. android 中的 Bitmap 相关

随机推荐

  1. MySQL GRANT用户授权的实现
  2. 浅谈MySQL user权限表
  3. 解决mysql模糊查询索引失效问题的几种方
  4. MySQL 亿级数据导入导出及迁移笔记
  5. 如何使用分区处理MySQL的亿级数据优化
  6. 关于Mysql-connector-java驱动版本问题总
  7. MySQL ifnull的嵌套使用说明
  8. MySql中 is Null段判断无效和IFNULL()失
  9. MySql关于null的函数使用分享
  10. MySql 如何实现无则插入有则更新