Android中监听电池变化

本文介绍了一个Android应用中用于监听并显示设备电池状态的方法。通过BroadcastReceiver接收ACTION_BATTERY_CHANGED广播,获取电池充电状态和电量水平,并根据这些信息更新UI元素以直观展示电池状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private BroadcastReceiver batteryReceiver = new BroadcastReceiver() {

		@Override
		public void onReceive(Context context, Intent intent) {
			if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {
				int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
				int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
				int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS,
						BatteryManager.BATTERY_STATUS_UNKNOWN);
				 Log.e("", "level-->" + level + "\nscale-->" + scale +
				 "\nstatus-->" + status);
				if (status == BatteryManager.BATTERY_STATUS_CHARGING) {

					ivBattery.setImageResource(R.drawable.battery_chongdian) ;
				} else {
					int l = -1;
					if (level >= 0 && scale > 0) {
						l = level * 100 / scale;
					}
					if (l >= 85) {

						ivBattery.setImageResource(R.drawable.battery_full);
					} else if (l >= 70 && l < 85) {

						ivBattery.setImageResource(R.drawable.battery_bashi) ;
					} else if (l >= 50 && l < 70) {

						ivBattery.setImageResource(R.drawable.battery_wushi) ;
					} else if (l >= 30 && l < 50) {

						ivBattery.setImageResource(R.drawable.battery_sanshi) ;
					} else if (l >= 16 && l < 30) {

						ivBattery.setImageResource(R.drawable.battery_sanshi) ;
					} else if (l >= 0 && l < 16) {

						ivBattery.setImageResource(R.drawable.battery_ling) ;
					}
				}
			}
		}
	};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值