分享

Intent.ACTION_BATTERY_CHANGED——检测手机电量情况_夏天的风—...

 liluvu 2010-10-20
程序功能非常简单,设计一个button,作为触动事件——点击后,便将当前电池显示出来。

      主程序仍然需要实现一个BroadcastReceiver对象,在Button的onClick事件触发时,向系统注册一个 BroadcastReiver,通过IntentFilter的设置来讲Intent.ACTION_BATTERY_CHANGED

       具体源码:

      package com.allove.wfp;

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.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class BatteryInfoTest extends Activity implements OnClickListener{
private Button mButton;
private int intLevel;
private int intScale;
private BroadcastReceiver mBatteryInfoReceiver=new BroadcastReceiver()
{

@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action=intent.getAction();
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);
setContentView(R.layout.main);

mButton=(Button) this.findViewById(R.id.Button01);
mButton.setOnClickListener(this);
}

public void onBatteryInfoReceiver(int intLevel,int intScale)
{
final Dialog d=new Dialog(this);
d.setTitle("电池信息");
d.setContentView(R.layout.dialog);
Window window=d.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
TextView mTextView=(TextView) d.findViewById(R.id.dialog_TextView01);
mTextView.setText("电池计量:"+String.valueOf(intLevel*100/intScale)+"%");
Button button=(Button) d.findViewById(R.id.dialog_Button01);
button.setOnClickListener(new View.OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
BatteryInfoTest.this.unregisterReceiver(mBatteryInfoReceiver);
d.dismiss();
}
});
d.show();
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.Button01:
this.registerReceiver(mBatteryInfoReceiver,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
break;
}
}
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多