android之监听设备电量变化

网友投稿 379 2022-11-21

android之监听设备电量变化

通过一下代码方式就能时时的获取电量的变化信息,也可以通过BatteryManager对象里面的其他String 来获取其他信息,比如EXTRA_PLUGGED,这个是返回当前是用usb,交流电,无线电的方式等, 这里是比较简单的几行代码通过广播监听设备变化: public class BatteryActivity extends Activity implements OnClickListener { private Button startBtn, stopBtn; private TextView batteryValue; private BroadcastReceiver mReceiver; private IntentFilter mFilter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.battery_layout); startBtn = (Button) findViewById(R.id.start_btn); stopBtn = (Button) findViewById(R.id.stop_btn); batteryValue = (TextView) findViewById(R.id.battery_vaule); batteryValue.setTextColor(Color.RED); startBtn.setOnClickListener(this); stopBtn.setOnClickListener(this); mFilter = new IntentFilter(); // 监听电量变化,只能采用动态注册方式,不能在AndroidManifest.xml中用静态注册广播接受者 mFilter.addAction(Intent.ACTION_BATTERY_CHANGED); mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub
// 当前电量 int level =intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); // 最大电量 int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 0); batteryValue.setText("当前电量为:" + (level * 100) / scale + "%"); } }; } @Override public void onClick(View v) { // TODO Auto-generated method stub int id = v.getId(); switch (id) { case R.id.start_btn: registerReceiver(mReceiver, mFilter); break; case R.id.stop_btn:< unregisterReceiver(mReceiver); break; default: break; } } @Override protected void onDestroy() { // TODO Auto-generated method stub< super.onDestroy(); unregisterReceiver(mReceiver); } } 布局文件: 

上一篇:使用JPA自定义VO类型转换(EntityUtils工具类)
下一篇:android自定义对话框
相关文章

 发表评论

暂时没有评论,来抢沙发吧~