当前位置: 首页 > 工具软件 > Juice-battery > 使用案例 >

android.os.BatteryManager

孟自强
2023-12-01

如果我们注册了对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);
		}
	};
}


 类似资料:

相关阅读

相关文章

相关问答