天天看點

android 電量

在android中,要獲得手機的電量的話,可以通過intent廣播去實作,監聽

action_battery_changed,例子如下:

package com.liao;

import android.app.Activity;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.os.Bundle;

import android.widget.TextView;

public class BatteryLevelActivity extends Activity {

/** Called when the activity is first created. */

private TextView batterLevel;

@Override

/**

* Called when the current activity is first created.

*/

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.main);

batterLevel = (TextView) this.findViewById(R.id.batteryLevel);

batteryLevel();

}

private void batteryLevel() {

BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() {

public void onReceive(Context context, Intent intent) {

context.unregisterReceiver(this);

int rawlevel = intent.getIntExtra("level", -1);//獲得目前電量

int scale = intent.getIntExtra("scale", -1);

//獲得總電量

int level = -1;

if (rawlevel >= 0 && scale > 0) {

level = (rawlevel * 100) / scale;

batterLevel.setText("Battery Level Remaining: " + level + "%");

};

IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);

registerReceiver(batteryLevelReceiver, batteryLevelFilter);

如果是2。0後的SDK,也可以這樣:

int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);

int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

就是修改一下類而已