Android 获取设备电池电量
16lz
2021-01-23
注册广播接收器:
homeFilter = new IntentFilter();homeFilter.addAction(Intent.ACTION_BATTERY_CHANGED);registerReceiver(homeReceiver, homeFilter);
广播接收ACTION_BATTERY_CHANGED:
private BroadcastReceiver homeReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (Intent.ACTION_BATTERY_CHANGED.equals(action)) { int rawLevel = intent.getIntExtra("level", -1); int scale = intent.getIntExtra("scale", -1); int status = intent.getIntExtra("status", -1); int health = intent.getIntExtra("health", -1); MyLog.i("[HomeReceiver]rawLevel:" + rawLevel + ",scale:" + scale + ",status:" + status + ",health:" + health); switch (status) { case BatteryManager.BATTERY_STATUS_UNKNOWN: setBatteryImageByLevel(0); break; case BatteryManager.BATTERY_STATUS_CHARGING: break; case BatteryManager.BATTERY_STATUS_DISCHARGING: case BatteryManager.BATTERY_STATUS_NOT_CHARGING: if (rawLevel >= 0 && rawLevel <= 100) { int level = (int) (rawLevel / 10.0); setBatteryImageByLevel(level); } break; case BatteryManager.BATTERY_STATUS_FULL: setBatteryImageByLevel(10); break; default: break; } } } };
设置电池图标:
/** * 设置电池图标 * * @param level * 0-10 */ private void setBatteryImageByLevel(int level) { MyLog.i("[setBatteryImageByLevel]:" + level); if (level >= 0 && level <= 10) { int batteryResId = getResources().getIdentifier( "home_battery_" + level, "drawable", getPackageName()); imageBattery.setImageResource(batteryResId); } }
更多相关文章
- 关于android的广播接收器(1)—基础篇
- 30个高质量并且免费的Android图标【Android Icon素材】
- android mtk6592 禁止拖动主界面图标
- [置顶] android 图标的绘制
- android之launcher时序图and图标的建立
- android 自带图标介绍
- Android 显示/隐藏 应用图标
- Android 响应键盘移动图标
- android 电池状态获取