Android电池信息的获取
这里介绍电池信息的取得.
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)
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电池信息的获取相关推荐
- android开发获取手机,通过ADB获取Android手机信息,获取手机信息
通过ADB获取Android手机信息,获取手机信息 原文:https://blog.csdn.net/fasfaf454/article/details/51438743 1.获取手机系统信息( CP ...
- Android电池信息
Android中电池信息(Battery information)的取得 这里介绍电池信息的取得. Android.content.BroadcastReceiver类 ...
- Android电池信息(Battery information)
BatteryManager java.lang.Object android.os.BatteryManager 中文:BatteryManager类包含了字符串和常量用于行动电池中的值改变的意图 ...
- CocosCreator之KUOKUO带你搞反射-获取电池信息
摘要 在使用 CocosCreator 打包的原生应用中,我们可以通过引擎封装好的反射机制调用 Java 的静态方法,从而实现提示.相册.支付跳转等功能.本次内容为利用 jsb 读取返回的电池信息. ...
- Android之获取手机基本信息、内存信息、网路信息、电池信息,等一共18项数据
获取手机信息,代码复制可用,开发工具为:Android Studio 1.手机品牌 2.手机型号 3.屏幕分辨率 4.像素密度 5.屏幕尺寸 6.Android 系统版本 7.运行内存 8.储存空间 ...
- android获取电池信息;android获取电池容量、技术、电压、电量、温度等信息
android获取电池信息:android获取电池容量.技术.电压.电量.温度等信息 1.这里我仅展示工具类,需要注意的是这里的部分值要刷新后才能显示,添加刷新UI的方法即可,而且电量温度等都是变化的 ...
- android+获取电池信息,Delphi XE5 Android应用程序获取电池信息
将android.os.BatteryManager类移植到Delphi. uses Androidapi.JNI.JavaTypes, Androidapi.JNIBridge; type JBat ...
- Android 使用adb查看和修改电池信息
1.获取电池信息 $ adb shell dumpsys battery $ adb shell dumpsys battery Current Battery Service state:AC po ...
- android 电池容量修改,Android 使用adb查看和修改电池信息
1.获取电池信息 $ adb shell dumpsys battery $ adb shell dumpsys battery Current Battery Service state: AC p ...
最新文章
- 漫画:骚操作系列(灯泡开关的经典面试题)
- delphi 实现屏幕旋转代码_Cocos Creator模拟射箭效果 | 附代码
- 1.18.5.流式概念、动态表(Dynamic Table)、DataStream上的关系查询、动态表 连续查询(Continuous Query)、在流上定义表、处理时间
- json字符串与对象如何相互转换
- tp5 修改配置参数 view_replace_str 无效
- Android高效加载大图、多图解决方案_LruCache,有效避免程序OOM
- 别看微信,微博,头条用户都很多,自媒体作者也很多
- 模板设计模式_23种设计模式之模板设计模式
- php去除文字格式,php如何清除html格式并去除文字中的空格然后截取文字
- (转)中国电信友华PT921、PT921G光猫设置路由,无线WIFI设置
- 详解深度学习中的梯度消失、爆炸原因及其解决方法
- 微信小程序 诡异的异步调用问题,函数执行结果与预想不一致
- java 定义别名_Java 别名(Aliasing)
- 查找书籍!!!查找书籍!!查找书籍!
- 上顿号符号_标点符号(1):谈谈顿号的用法
- 深度学习之生成对抗网络(5)纳什均衡
- Chrome 调试 websocket
- BT656/BT601/BT1120协议以及DM365/DM355/DM6467上使用的YUV颜色空间说明
- 项目一 8 购销合同管理,mybatis的逆向生成工具
- 达梦数据库集群主备节点切换