在main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal">
<Button
android:id="@+id/but"
android:layout_width="100dp"
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:textColor="#ffffff"
android:background="#3399ff"
android:text="取得电池电量" />
</LinearLayout>
新建BatteryInfoBroadcastReceiver.java:
package com.li.battery;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
public class BatteryInfoBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
int level = intent.getIntExtra("level", 0);
int scale = intent.getIntExtra("scale", 100);
Dialog dialog = new AlertDialog.Builder(context)
.setTitle("电池电量")
.setMessage(
"电池电量为:" + String.valueOf(level * 100 / scale)
+ "%")
.setNegativeButton("关闭",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
}
}).create();
dialog.show();
}
}
}
在MyBatteryDemo.java中:
package com.li.battery;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MyBatteryDemo extends Activity {
private Button but = null ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.but = (Button) super.findViewById(R.id.but) ;
this.but.setOnClickListener(new OnClickListenerImpl()) ;
}
private class OnClickListenerImpl implements OnClickListener {
public void onClick(View v) {
BatteryInfoBroadcastReceiver receiver = new BatteryInfoBroadcastReceiver() ;
IntentFilter filter = new IntentFilter(
Intent.ACTION_BATTERY_CHANGED) ;
MyBatteryDemo.this.registerReceiver(receiver, filter) ;
}
}
}