传统的注册BroadcatsReceiver监听Battery_changed有个缺陷,就是只有等到初始化和电量改变时,才能够收到通知,以下方法可以快速获得电量,直接拷贝的。
之前写过一个桌面电池小控件,记得获取电池信息使用BroadcastReceiver实现的,通常是在一个Service里面,动态注册一个BroadcastReceiver,用以监听电池的电量信息。有时候,仅需要一次性的获取电池电量信息,之前也是这么做的,也即这个监控电池电量的BroadcastReceiver在刚注册的时候,会立即获取一次电池的信息,但是感觉这样获取不大好,于是就又Google了一下,结果在StackOverFlow上找到了一个完美的获取电池电量的方法,虽然也是基于BroadcastReceiver,但是简单了不少。
用下面的代码就可以获取到携带电池信息的Intent了,相当于注册了一个空的BroadcastReceiver。
- Intent batteryInfoIntent = context.getApplicationContext()