热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android电池信息的获取

这里介绍电池信息的取得.android.content.BroadcastReceiver类android.os.BatteryManager类●电池信息的取得,调用register

这里介绍电池信息的取得.
    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 sourceprint?
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


推荐阅读
author-avatar
爱是一道菜lzb
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有