Android四大组件之--BroadcastReceiver广播,监测手机电量变化
MainActivity.Java
package com.example.week4_day5_bettery;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.view.Menu;
/**
* 检测电量变化
*/
public class MainActivity extends Activity {
private MyBattery myBattery=new MyBattery();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//意图过滤器
IntentFilter filter=new IntentFilter();
//添加检测电量变化的权限
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(myBattery, filter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
监测电量的类
package com.example.week4_day5_bettery;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class MyBattery 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", 0);//获取总电量
int current=(level*100/scale);//获得当前电量的百分比
Toast.makeText(context, "手机还有"+current+"%的电", Toast.LENGTH_SHORT).show();
}
}
}