android 电量 电压,android电源信息查看(电量、温度、电压)实例代码

本文实例讲述了android电源信息查看方法。分享给大家供大家参考。具体如下:

1. PowerTestActivity:

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.os.PowerManager;

import android.view.View;

import android.widget.CheckBox;

import android.widget.TextView;

import java.text.DateFormat;

import java.util.Date;

/**

* So you thought sync used up your battery life.

*/

public class PowerTestActivity extends Activity {

TextView mLog;

DateFormat mDateFormat;

IntentFilter mFilter;

PowerManager.WakeLock mWakeLock;

SpinThread mThread;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// Set the layout for this activity. You can find it

// in res/layout/hello_activity.xml

setContentView(R.layout.main);

findViewById(R.id.checkbox).setOnClickListener(mClickListener);

mLog = (TextView)findViewById(R.id.log);

mDateFormat = DateFormat.getInstance();

mFilter = new IntentFilter();

mFilter.addAction(Intent.ACTION_BATTERY_CHANGED);

mFilter.addAction(Intent.ACTION_BATTERY_LOW);

mFilter.addAction(Intent.ACTION_BATTERY_OKAY);

mFilter.addAction(Intent.ACTION_POWER_CONNECTED);

PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);

mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "BatteryWaster");

mWakeLock.setReferenceCounted(false);

}

@Override

public void onPause() {

stopRunning();

}

View.OnClickListener mClickListener = new View.OnClickListener() {

public void onClick(View v) {

CheckBox checkbox = (CheckBox)v;

if (checkbox.isChecked()) {

startRunning();

} else {

stopRunning();

}

}

};

void startRunning() {

log("Start");

registerReceiver(mReceiver, mFilter);

mWakeLock.acquire();

if (mThread == null) {

mThread = new SpinThread();

mThread.start();

}

}

void stopRunning() {

log("Stop");

unregisterReceiver(mReceiver);

mWakeLock.release();

if (mThread != null) {

mThread.quit();

mThread = null;

}

}

void log(String s) {

mLog.setText(mLog.getText() + "\n" + mDateFormat.format(new Date()) + ": " + s);

}

BroadcastReceiver mReceiver = new BroadcastReceiver() {

public void onReceive(Context context, Intent intent) {

StringBuffer sb = new StringBuffer();

String action = intent.getAction();

/*

* 如果捕捉到的action是ACTION_BATTERY_CHANGED, 就运行onBatteryInfoReceiver()

*/

if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {

sb.append("\n当前电量:").append(intent.getIntExtra("level", 0));

sb.append("\n电池电量:").append(intent.getIntExtra("scale", 100));

// 电池伏数

sb.append("\n当前电压:").append(intent.getIntExtra("voltage", 0));

// 电池温度

sb.append("\n当前温度:").append(

intent.getIntExtra("temperature", 0));

String BatteryStatus = null;

switch (intent.getIntExtra("status",

BatteryManager.BATTERY_STATUS_UNKNOWN)) {

case BatteryManager.BATTERY_STATUS_CHARGING:

BatteryStatus = "充电状态";

break;

case BatteryManager.BATTERY_STATUS_DISCHARGING:

BatteryStatus = "放电状态";

break;

case BatteryManager.BATTERY_STATUS_NOT_CHARGING:

BatteryStatus = "未充电";

break;

case BatteryManager.BATTERY_STATUS_FULL:

BatteryStatus = "充满电";

break;

case BatteryManager.BATTERY_STATUS_UNKNOWN:

BatteryStatus = "未知道状态";

break;

}

sb.append("\n当前状态:").append(BatteryStatus);

String BatteryStatus2 = null;

switch (intent.getIntExtra("plugged",

BatteryManager.BATTERY_PLUGGED_AC)) {

case BatteryManager.BATTERY_PLUGGED_AC:

BatteryStatus2 = "AC充电";

break;

case BatteryManager.BATTERY_PLUGGED_USB:

BatteryStatus2 = "USB充电";

break;

}

sb.append("\n充电方式:").append(BatteryStatus2);

String BatteryTemp = null;

switch (intent.getIntExtra("health",

BatteryManager.BATTERY_HEALTH_UNKNOWN)) {

case BatteryManager.BATTERY_HEALTH_UNKNOWN:

BatteryTemp = "未知错误";

break;

case BatteryManager.BATTERY_HEALTH_GOOD:

BatteryTemp = "状态良好";

break;

case BatteryManager.BATTERY_HEALTH_DEAD:

BatteryTemp = "电池没有电";

break;

case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:

BatteryTemp = "电池电压过高";

break;

case BatteryManager.BATTERY_HEALTH_OVERHEAT:

BatteryTemp = "电池过热";

break;

}

sb.append("\n电池状态:").append(BatteryTemp);

log(sb.toString());

}

}

};

class SpinThread extends Thread {

private boolean mStop;

public void quit() {

synchronized (this) {

mStop = true;

}

}

public void run() {

while (true) {

synchronized (this) {

if (mStop) {

return;

}

}

}

}

}

}

2. main.xml:

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_marginLeft="25dp"

android:layout_marginTop="25dp"

android:textSize="18sp"

android:textColor="#ffffffff"

android:text="电源测试"

/>

android:layout_width="fill_parent"

android:layout_height="0px"

android:layout_weight="1"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_marginTop="25dp"

android:textSize="12sp"

android:textColor="#ffffffff"

/>

3. AndroidManifest.xml:

package="com.lenovo.android"

android:versionCode="1"

android:versionName="1.0">

android:label="@string/app_name">

希望本文所述对大家的Android程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值