这里介绍电池信息的取得.
    android.content.BroadcastReceiver类
    android.os.BatteryManager类

● 电池信息的取得,调用registerReceiver()方法。
         第1个参数,设置BroadcastReceiver实例
         第2个参数,设置追加了Intent.ACTION_BATTERY_CHANGED处理的IntentFilter实例。

● 在BroadcastReceiver的onReceive()事件,接收到的Intent.ACTION_BATTERY_CHANGED,包括下面的信息。
    “status”(int类型)…状态,定义值是BatteryManager.BATTERY_STATUS_XXX。
    “health”(int类型)…健康,定义值是BatteryManager.BATTERY_HEALTH_XXX。
    “present”(boolean类型)
    “level”(int类型)…电池剩余容量
    “scale”(int类型)…电池最大值。通常为100。
    “icon-small”(int类型)…图标ID。
    “plugged”(int类型)…连接的电源插座,定义值是BatteryManager.BATTERY_PLUGGED_XXX。
    “voltage”(int类型)…mV。
    “temperature”(int类型)…温度,0.1度单位。例如 表示197的时候,意思为19.7度。  
    “technology”(String类型)…电池类型,例如,Li-ion等等。

例程源码(Java)

view source print?
001 package com.adakoda.batterytest;
002   
003 import android.app.Activity;
004 import android.content.BroadcastReceiver;
005 import android.content.Context;
006 import android.content.Intent;
007 import android.content.IntentFilter;
008 import android.os.BatteryManager;
009 import android.os.Bundle;
010 import android.util.Log;
011   
012 public class BatteryTestActivity extends Activity {
013     /** Called when the activity is first created. */
014     @Override
015     public void onCreate(Bundle savedInstanceState) {
016         super.onCreate(savedInstanceState);
017         setContentView(R.layout.main);        
018     }
019   
020     @Override
021     protected void onResume() {
022         super.onResume();
023          
024         IntentFilter filter = new IntentFilter();
025          
026         filter.addAction(Intent.ACTION_BATTERY_CHANGED);
027         registerReceiver(mBroadcastReceiver, filter);
028     }
029   
030     @Override
031     protected void onPause() {
032         super.onPause();
033          
034         unregisterReceiver(mBroadcastReceiver);
035     }
036   
037     private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
038         @Override
039         public void onReceive(Context context, Intent intent) {
040             String action = intent.getAction();
041             if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
042                 int status = intent.getIntExtra("status"0);
043                 int health = intent.getIntExtra("health"0);
044                 boolean present = intent.getBooleanExtra("present"false);
045                 int level = intent.getIntExtra("level"0);
046                 int scale = intent.getIntExtra("scale"0);
047                 int icon_small = intent.getIntExtra("icon-small"0);
048                 int plugged = intent.getIntExtra("plugged"0);
049                 int voltage = intent.getIntExtra("voltage"0);
050                 int temperature = intent.getIntExtra("temperature"0);
051                 String technology = intent.getStringExtra("technology");
052                  
053                 String statusString = "";
054                  
055                 switch (status) {
056                 case BatteryManager.BATTERY_STATUS_UNKNOWN:
057                     statusString = "unknown";
058                     break;
059                 case BatteryManager.BATTERY_STATUS_CHARGING:
060                     statusString = "charging";
061                     break;
062                 case BatteryManager.BATTERY_STATUS_DISCHARGING:
063                     statusString = "discharging";
064                     break;
065                 case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
066                     statusString = "not charging";
067                     break;
068                 case BatteryManager.BATTERY_STATUS_FULL:
069                     statusString = "full";
070                     break;
071                 }
072                  
073                 String healthString = "";
074                  
075                 switch (health) {
076                 case BatteryManager.BATTERY_HEALTH_UNKNOWN:
077                     healthString = "unknown";
078                     break;
079                 case BatteryManager.BATTERY_HEALTH_GOOD:
080                     healthString = "good";
081                     break;
082                 case BatteryManager.BATTERY_HEALTH_OVERHEAT:
083                     healthString = "overheat";
084                     break;
085                 case BatteryManager.BATTERY_HEALTH_DEAD:
086                     healthString = "dead";
087                     break;
088                 case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:
089                     healthString = "voltage";
090                     break;
091                 case BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE:
092                     healthString = "unspecified failure";
093                     break;
094                 }
095                  
096                 String acString = "";
097                  
098                 switch (plugged) {
099                 case BatteryManager.BATTERY_PLUGGED_AC:
100                     acString = "plugged ac";
101                     break;
102                 case BatteryManager.BATTERY_PLUGGED_USB:
103                     acString = "plugged usb";
104                     break;
105                 }
106                                  
107                 Log.v("status", statusString);
108                 Log.v("health", healthString);
109                 Log.v("present", String.valueOf(present));
110                 Log.v("level", String.valueOf(level));
111                 Log.v("scale", String.valueOf(scale));
112                 Log.v("icon_small", String.valueOf(icon_small));
113                 Log.v("plugged", acString);
114                 Log.v("voltage", String.valueOf(voltage));
115                 Log.v("temperature", String.valueOf(temperature));
116                 Log.v("technology", technology);
117             }
118         }
119     };
120 }

参考资源
● BroadcastReceiver | Android Developers
● BatteryManager | Android Developers

Android电池信息的获取相关推荐

  1. android开发获取手机,通过ADB获取Android手机信息,获取手机信息

    通过ADB获取Android手机信息,获取手机信息 原文:https://blog.csdn.net/fasfaf454/article/details/51438743 1.获取手机系统信息( CP ...

  2. Android电池信息

    Android中电池信息(Battery information)的取得        这里介绍电池信息的取得.        Android.content.BroadcastReceiver类   ...

  3. Android电池信息(Battery information)

    BatteryManager java.lang.Object android.os.BatteryManager 中文:BatteryManager类包含了字符串和常量用于行动电池中的值改变的意图 ...

  4. CocosCreator之KUOKUO带你搞反射-获取电池信息

    摘要 在使用 CocosCreator 打包的原生应用中,我们可以通过引擎封装好的反射机制调用 Java 的静态方法,从而实现提示.相册.支付跳转等功能.本次内容为利用 jsb 读取返回的电池信息. ...

  5. Android之获取手机基本信息、内存信息、网路信息、电池信息,等一共18项数据

    获取手机信息,代码复制可用,开发工具为:Android Studio 1.手机品牌 2.手机型号 3.屏幕分辨率 4.像素密度 5.屏幕尺寸 6.Android 系统版本 7.运行内存 8.储存空间 ...

  6. android获取电池信息;android获取电池容量、技术、电压、电量、温度等信息

    android获取电池信息:android获取电池容量.技术.电压.电量.温度等信息 1.这里我仅展示工具类,需要注意的是这里的部分值要刷新后才能显示,添加刷新UI的方法即可,而且电量温度等都是变化的 ...

  7. android+获取电池信息,Delphi XE5 Android应用程序获取电池信息

    将android.os.BatteryManager类移植到Delphi. uses Androidapi.JNI.JavaTypes, Androidapi.JNIBridge; type JBat ...

  8. Android 使用adb查看和修改电池信息

    1.获取电池信息 $ adb shell dumpsys battery $ adb shell dumpsys battery Current Battery Service state:AC po ...

  9. android 电池容量修改,Android 使用adb查看和修改电池信息

    1.获取电池信息 $ adb shell dumpsys battery $ adb shell dumpsys battery Current Battery Service state: AC p ...

最新文章

  1. 漫画:骚操作系列(灯泡开关的经典面试题)
  2. delphi 实现屏幕旋转代码_Cocos Creator模拟射箭效果 | 附代码
  3. 1.18.5.流式概念、动态表(Dynamic Table)、DataStream上的关系查询、动态表 连续查询(Continuous Query)、在流上定义表、处理时间
  4. json字符串与对象如何相互转换
  5. tp5 修改配置参数 view_replace_str 无效
  6. Android高效加载大图、多图解决方案_LruCache,有效避免程序OOM
  7. 别看微信,微博,头条用户都很多,自媒体作者也很多
  8. 模板设计模式_23种设计模式之模板设计模式
  9. php去除文字格式,php如何清除html格式并去除文字中的空格然后截取文字
  10. (转)中国电信友华PT921、PT921G光猫设置路由,无线WIFI设置
  11. 详解深度学习中的梯度消失、爆炸原因及其解决方法
  12. 微信小程序 诡异的异步调用问题,函数执行结果与预想不一致
  13. java 定义别名_Java 别名(Aliasing)
  14. 查找书籍!!!查找书籍!!查找书籍!
  15. 上顿号符号_标点符号(1):谈谈顿号的用法
  16. 深度学习之生成对抗网络(5)纳什均衡
  17. Chrome 调试 websocket
  18. BT656/BT601/BT1120协议以及DM365/DM355/DM6467上使用的YUV颜色空间说明
  19. 项目一 8 购销合同管理,mybatis的逆向生成工具
  20. 达梦数据库集群主备节点切换

热门文章

  1. 小饶学编程之JAVA SE第二部分——Web 前端基础:09CSS3
  2. 2021-06-10 MYSQL存储过程与触发器作业
  3. 如何将Mac设置为热点?
  4. Working With JSON
  5. 移动开发之我见 ——移动WEB
  6. 科技人才开发效率的空间杜宾模型分析
  7. Mobilenet_v2的参数alpha和depth_multiplier
  8. VMware跨电脑移动Linux虚拟机
  9. Java校招面经_校招面经:阿里天猫Java后台开发面试历程
  10. OpenCV检测手指个数