设为首页 加入收藏

TOP

Android中电池信息(Battery information)的取得(一)
2014-11-24 03:00:52 来源: 作者: 【 】 浏览:1
Tags:Android 电池 信息 Battery information 取得

这里介绍电池信息的取得.


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)



package com.adakoda.batterytest;


import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.Bundle;
import android.util.Log;


public class BatteryTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}


@Override
protected void onResume() {
super.onResume();

IntentFilter filter = new IntentFilter();

filter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(mBroadcastReceiver, filter);
}


@Override
protected void onPause() {
super.onPause();

unregisterReceiver(mBroadcastReceiver);
}


private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
int status = intent.getIntExtra("status", 0);
int health = intent.getIntExtra("health", 0);
boolean present = intent.getBooleanExtra("present", false);
int level = intent.getIntExtra("level", 0);
int scale = intent.getIntExtra("scale", 0);
int icon_small = intent.getIntExtra("icon-small", 0);
int plugged = intent.getIntExtra("plugged", 0);
int voltage = intent.getIntExtra("voltage", 0);
int temperature = intent.getIntExtra("temperature", 0);
String technology = intent.getStringExtra("technology");

String statusString = "";

switch (status) {
case BatteryManager.BATTERY_STATUS_UNKNOWN:
statusString = "unknown";
break;
case BatteryManager.BATTERY_STATUS_CHARGING:
statusString = "charging";
break;
case BatteryManager.BATTERY_STATUS_DISCHARGING:
statusString = "discharging";
break;
case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
statusString = "not charging";
break;
case BatteryManager.BATTERY_STATUS_FULL:
statusString = "full";
break;
}

String healthString = "";

switch (health) {
case BatteryManager.BATTERY_HEALTH_UNKNOWN:
healthString = "unknown";
break;
case BatteryManager.BATTERY_HEALTH_GOOD:
healthString =

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android图片放大修改代码 下一篇Android 的动作、广播、类别等标..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: