Android4.4開發(fā)之電池低電量告警提示原理與實現(xiàn)方法分析
本文實例講述了Android4.4電池低電量告警提示原理與實現(xiàn)方法。分享給大家供大家參考,具體如下:
之前版本的電池電量低是通過發(fā)送 intent ACTION_BATTERY_LOW來實現(xiàn)的,而在android4.4中,通過發(fā)送intent ACTION_BATTERY_CHANGED,也就是電池電量只要變化就檢查是否需要低電量告警,并且實現(xiàn)挪到了PowerUI中。
路徑:
frameworks/base/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
public void start() { ...... //注冊intent, 主要關(guān)注的是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); }
當電池電量發(fā)生變化的時候,BatteryService就會發(fā)送 ACTION_BATTERY_CHANGED的 intent.
接著如下函數(shù)就會被調(diào)用:
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(); ...... } } };
如果不想要顯示低電量對話框, 只要不調(diào)用showLowBatteryWarning()
即可。
我遇到的問題在于插上充電座之后開機仍然顯示低電量告警,提示要插入充電器,出現(xiàn)這個問題的原因在于: 電池是另外一塊板子供的,所以沒有插拔信息,并且battery status默認情況下也是BATTERY_STATUS_UNKNOWN。
因此只要將status改成BATTERY_STATUS_CHARGING就能修復此問題了~
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android硬件相關(guān)操作與應用總結(jié)》、《Android文件操作技巧匯總》、《Android開發(fā)入門與進階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設計有所幫助。
相關(guān)文章
Android使用ViewPager實現(xiàn)滾動廣告
這篇文章主要為大家詳細介紹了Android使用ViewPager實現(xiàn)滾動廣告,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-11-11解決Android Studio sdk emulator directory is missing問題
這篇文章主要介紹了解決Android Studio sdk emulator directory is missing問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11AndroidSDK Support自帶夜間、日間模式切換詳解
這篇文章主要為大家詳細介紹了AndroidSDK Support自帶夜間、日間模式切換,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09關(guān)于AndroidStudio R文件莫名其妙缺失的快速解決方法
下面小編就為大家?guī)硪黄P(guān)于AndroidStudio R文件莫名其妙缺失的快速解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03