android.os.BatteryManager

如果我们注册了对Intent.ACTION_BATTERY_CHANGED的监听,那么我们马上会收到一个Action为Intent.ACTION_BATTERY_CHANGED的intent,之后只要我们没有取消监听,电池发送变化,我们会收到这样的intent.

通过该intent的extra我们可以取得电池的很多信息,比如电压/ 当前电池的健康状况 等等。

比如电压可以用如下的方式:

int voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);

(1) EXTRA_HEALTH当前电池的健康状态

可能的取值:

BATTERY_HEALTH_COLD

BATTERY_HEALTH_DEAD

BATTERY_HEALTH_GOOD

BATTERY_HEALTH_OVERHEAT

BATTERY_HEALTH_OVER_VOLTAGE

BATTERY_HEALTH_UNKNOWN

BATTERY_HEALTH_UNSPECIFIED_FAILURE

(2)EXTRA_ICON_SMALL当前用于表示电池状态的icon的资源id

(3)EXTRA_LEVEL电池当前的电量

  (4) EXTRA_PLUGGED当前手机使用的是哪里的电源

可能的取值:

BATTERY_PLUGGED_AC

BATTERY_PLUGGED_USB

  (5) EXTRA_PRESENT表示是否提供电池。有些手机在使用USB电源的情况下,即使拔出了电池,仍然可以正常工作

  (6) EXTRA_SCALE表示电池电量的最大值

  (7) EXTRA_STATUS表示电池的当前状态

可能的取值:

BATTERY_STATUS_CHARGING

BATTERY_STATUS_DISCHARGING

BATTERY_STATUS_FULL

BATTERY_STATUS_NOT_CHARGING

BATTERY_STATUS_UNKNOWN

  (8) EXTRA_TECHNOLOGY表示电池使用的技术。比如,对于锂电池是Li-ion

  (9) EXTRA_TEMPERATURE表示当前电池的温度

  (10) EXTRA_VOLTAGE表示当前电池的电压

package com.example.demo;

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

public class MainActivity extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
	}

	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		unregisterReceiver(mReceiver);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

	BroadcastReceiver mReceiver = new BroadcastReceiver() {

		@Override
		public void onReceive(Context context, Intent intent) {
			// TODO Auto-generated method stub
			int health = intent.getIntExtra(BatteryManager.EXTRA_HEALTH, -1);
			Log.i("test", "health: " + health);
			int voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
			Log.i("test", "voltage: " + voltage);
		}
	};
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值