APP--电源监测

package com.battery.ft;

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.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class Battery extends Activity {

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

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        registerReceiver(mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

        Button button=(Button)findViewById(R.id.Button01);

        button.setOnClickListener(new OnClickListener(){

public void onClick(View v) {

// TODO Auto-generated method stub

// Intent shutdown = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);  

//  shutdown.putExtra(Intent.EXTRA_KEY_CONFIRM, false);  

//  shutdown.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  

//  startActivity(shutdown);   

}

       

        });

    }

    private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {

        int intLevel = 0;

        int intScale = 0;

        public void onReceive(Context context, Intent intent) {

            String action = intent.getAction();

            String BatteryStatus = "";

            String BatteryStatus2 = "";

            String BatteryTemp = "";

            /*

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

            */

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

                intLevel = intent.getIntExtra("level", 0);

                intScale = intent.getIntExtra("scale", 100);

                // 电池伏数

                Log.d("Battery", "-------" + intent.getIntExtra("voltage", 0));

                // 电池温度

                Log.d("Battery", "---------" + intent.getIntExtra("temperature", 0));

              String  BatteryV = "当前电压为:" + intent.getIntExtra("voltage", 0);

              String   BatteryT = "当前温度为:" + intent.getIntExtra("temperature", 0);

                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;

                }

                Toast.makeText(context, BatteryStatus, Toast.LENGTH_SHORT).show();

                switch (intent.getIntExtra("plugged", BatteryManager.BATTERY_PLUGGED_AC)) {

                    case BatteryManager.BATTERY_PLUGGED_AC:

                        BatteryStatus2 = "AC充电";

                        break;

                    case BatteryManager.BATTERY_PLUGGED_USB:

                        BatteryStatus2 = "USB充电";

                        break;

                }

                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;

                }

            }

        }

    };

}

posted @ 2011-10-09 18:58  厘米  阅读(341)  评论(0编辑  收藏  举报