android低电量提示,Android4.4开发之电池低电量告警提示原理与实现方法分析
本文實例講述了Android4.4電池低電量告警提示原理與實現方法。分享給大家供大家參考,具體如下:
之前版本的電池電量低是通過發送 intent ACTION_BATTERY_LOW來實現的,而在android4.4中,通過發送intent ACTION_BATTERY_CHANGED,也就是電池電量只要變化就檢查是否需要低電量告警,并且實現挪到了PowerUI中。
路徑:
frameworks/base/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
public void start() {
......
//注冊intent, 主要關注的是ACTION_BATTERY_CHANGED消息。
// Register for Intent broadcasts for...
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
mContext.registerReceiver(mIntentReceiver, filter, null, mHandler);
}
當電池電量發生變化的時候,BatteryService就會發送 ACTION_BATTERY_CHANGED的 intent.
接著如下函數就會被調用:
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
......
mBatteryStatus = intent.getIntExtra(BatteryManager.EXTRA_STATUS,
BatteryManager.BATTERY_STATUS_UNKNOWN);
......
if (!plugged
&& (bucket < oldBucket || oldPlugged)
&& mBatteryStatus != BatteryManager.BATTERY_STATUS_UNKNOWN
&& bucket < 0) {
showLowBatteryWarning();
......
}
}
};
如果不想要顯示低電量對話框, 只要不調用showLowBatteryWarning()即可。
我遇到的問題在于插上充電座之后開機仍然顯示低電量告警,提示要插入充電器,出現這個問題的原因在于: 電池是另外一塊板子供的,所以沒有插拔信息,并且battery status默認情況下也是BATTERY_STATUS_UNKNOWN。
因此只要將status改成BATTERY_STATUS_CHARGING就能修復此問題了~
希望本文所述對大家Android程序設計有所幫助。
總結
以上是生活随笔為你收集整理的android低电量提示,Android4.4开发之电池低电量告警提示原理与实现方法分析的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 真机x86 android分辨率,And
- 下一篇: android 布局防抖动,Androi
