新建一个Receiver用于接受ACTION_BATTERY_CHANGED广播。
private int mBatteryLevel;
private int mBatteryScale;
class BatteryReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
//判断它是否是为电量变化的Broadcast Action
if(Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())){
//获取当前电量
mBatteryLevel = intent.getIntExtra("level", 0);
//电量的总刻度
mBatteryScale = intent.getIntExtra("scale", 100);
}
}
} 在onCreate中:
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
BatteryReceiver batteryReceiver = new BatteryReceiver();
registerReceiver(batteryReceiver, intentFilter);
mBackupManager = IBackupManager.Stub.asInterface(
ServiceManager.getService(Context.BACKUP_SERVICE));这里有一点需要注意,ACTION_BATTERY_CHANGED广播为粘性广播,所以已注册就会会调用onReceive,获取到当前的电量信息。
本文介绍了一个简单的Android应用组件BatteryReceiver的设计,该组件通过监听ACTION_BATTERY_CHANGED广播来获取设备的当前电量水平及其最大值。
1112

被折叠的 条评论
为什么被折叠?



