现在的位置: 首页 > 综合 > 正文

android 获取系统电量

2013年08月23日 ⁄ 综合 ⁄ 共 4094字 ⁄ 字号 评论关闭
package irdc.dian;

/* import相关class */
import irdc.dian.R;
import android.app.Activity;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;

public class dian extends Activity
{
  /* 变量声明 */
  private int intLevel;
  private int intScale;
  private Button mButton01;

  /* 创建BroadcastReceiver */
  private BroadcastReceiver mBatInfoReceiver=new BroadcastReceiver()
  {
    public void onReceive(Context context, Intent intent)
    {
      String action = intent.getAction();
      /* 如果捕捉到的action是ACTION_BATTERY_CHANGED,
       * 就运行onBatteryInfoReceiver() */
      if (Intent.ACTION_BATTERY_CHANGED.equals(action))
      {
        intLevel = intent.getIntExtra("level", 0);
        intScale = intent.getIntExtra("scale", 100);
        onBatteryInfoReceiver(intLevel,intScale);
      }
    }
  };

  /** Called when the activity is first created. */
  @Override 
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    /* 载入main.xml Layout */
    setContentView(R.layout.main);

    /* 初始化Button,并设置点击后的动作 */
    mButton01 = (Button)findViewById(R.id.myButton1);
    mButton01.setOnClickListener(new Button.OnClickListener()
    {
      @Override
      public void onClick(View v)
      {
        /* 注册一个系统 BroadcastReceiver,作为访问电池计量之用 */
        registerReceiver
        (
          mBatInfoReceiver,
          new IntentFilter(Intent.ACTION_BATTERY_CHANGED)
        );
      }
    });
  }

  /* 捕捉到ACTION_BATTERY_CHANGED时要运行的method */
  public void onBatteryInfoReceiver(int intLevel, int intScale)
  {
    /* create 跳出的对话窗口 */
    final Dialog d = new Dialog(dian.this);
    d.setTitle(R.string.str_dialog_title);
    d.setContentView(R.layout.mydialog);

    /* 创建一个背景模糊的Window,且将对话窗口放在前景 */
    Window window = d.getWindow();
    window.setFlags
    (
      WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
      WindowManager.LayoutParams.FLAG_BLUR_BEHIND
    );

    /* 将取得的电池计量显示于Dialog中 */
    TextView mTextView02=(TextView)d.findViewById(R.id.myTextView2);
    mTextView02.setText 
    (
      getResources().getText(R.string.str_dialog_body)+ 
      String.valueOf(intLevel * 100 / intScale) + "%" 
    );

    /* 设置返回主画面的按钮 */
    Button mButton02 = (Button)d.findViewById(R.id.myButton2); 
    mButton02.setOnClickListener(new Button.OnClickListener()
    {
      @Override
      public void onClick(View v)
      {
        /* 反注册Receiver,并关闭对话窗口 */
        unregisterReceiver(mBatInfoReceiver);
        d.dismiss(); 
      }
    });
    d.show(); 
  }
}

<?xml version="1.0" encoding="utf-8"?> 
<AbsoluteLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/layout1"
  android:background="@drawable/white"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
>
  <TextView 
    android:id="@+id/myTextView1" 
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content" 
    android:textColor="@drawable/blue" 
    android:textSize="20sp" 
    android:text="@string/str_title"
    android:layout_x="60px"
    android:layout_y="40px"
  >
  </TextView>
  <Button
    android:id="@+id/myButton1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/str_button1"
    android:textColor="@drawable/black" 
    android:textSize="14sp" 
    android:layout_x="80px"
    android:layout_y="90px"
  >
  </Button> 
</AbsoluteLayout>

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:background="@drawable/white" 
  android:orientation="vertical" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  > 
  <TextView 
    android:id="@+id/myTextView2" 
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content" 
    android:textColor="@drawable/blue"
    android:textSize="16sp"
    android:gravity="center"
    android:padding="10px"
  >
  </TextView> 
  <Button 
    android:id="@+id/myButton2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/str_button2"
  >
  </Button> 
</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="irdc.dian"
      android:versionCode="1"
      android:versionName="1.0.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name="irdc.dian.dian"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest> 

抱歉!评论已关闭.