引用:http://onetiger.net/?p=1057

在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,也可以这样:
public void onReceive(Context context, Intent intent) {
context.unregisterReceiver(this);
int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

就是修改一下类而已

更多相关文章

  1. cocos2dx调用android的说明很多,我直接给例子
  2. android 中使用sqLite例子
  3. MVP -----个人理解与示例(android例子 实现)
  4. android获得手机的电量
  5. android的单选框例子

随机推荐

  1. Android全屏对话框(附带延时关闭效果)
  2. Android 调试错误: java.lang.SecurityEx
  3. Android room操作数据库
  4. Android通过Servlet连接MySQL 实现登陆/
  5. android webview ZoomButtonsController
  6. Android开发之Intent.Action
  7. Android(安卓)JNI编程提高篇之二
  8. JRuby on Java ME/CDC
  9. android:visibility
  10. Android作为HTTP服务器--NanoHTTPD源码分