Android4.4開發(fā)之電池低電量告警提示原理與實(shí)現(xiàn)方法分析
本文實(shí)例講述了Android4.4電池低電量告警提示原理與實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
之前版本的電池電量低是通過發(fā)送 intent ACTION_BATTERY_LOW來實(shí)現(xiàn)的,而在android4.4中,通過發(fā)送intent ACTION_BATTERY_CHANGED,也就是電池電量只要變化就檢查是否需要低電量告警,并且實(shí)現(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);
}
當(dāng)電池電量發(fā)生變化的時(shí)候,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()即可。
我遇到的問題在于插上充電座之后開機(jī)仍然顯示低電量告警,提示要插入充電器,出現(xiàn)這個(gè)問題的原因在于: 電池是另外一塊板子供的,所以沒有插拔信息,并且battery status默認(rèn)情況下也是BATTERY_STATUS_UNKNOWN。
因此只要將status改成BATTERY_STATUS_CHARGING就能修復(fù)此問題了~
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android硬件相關(guān)操作與應(yīng)用總結(jié)》、《Android文件操作技巧匯總》、《Android開發(fā)入門與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android通知欄微技巧一些需要注意的小細(xì)節(jié)
這篇文章主要介紹了Android通知欄微技巧,那些你所沒關(guān)注過的小細(xì)節(jié),小編把此文分享到腳本之家平臺,需要的朋友可以參考下2018-04-04
Android獲取手機(jī)SIM卡運(yùn)營商信息的方法
這篇文章主要介紹了Android獲取手機(jī)SIM卡運(yùn)營商信息的方法,可獲得手機(jī)的型號、運(yùn)營商信息及系統(tǒng)版本等,需要的朋友可以參考下2014-09-09
Android性能優(yōu)化之弱網(wǎng)優(yōu)化詳解
這篇文章主要為大家介紹了Android性能優(yōu)化之弱網(wǎng)優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
android listview優(yōu)化幾種寫法詳細(xì)介紹
這篇文章只是總結(jié)下getView里面優(yōu)化視圖的幾種寫法,需要的朋友可以參考下2012-11-11
Android 中Lambda表達(dá)式的使用實(shí)例詳解
這篇文章主要介紹了 Android 中Lambda表達(dá)式的使用實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05
android?studio組件通信:Intend啟動Activity接收返回結(jié)果
這篇文章主要介紹了android?studio組件通信:Intend啟動Activity接收返回結(jié)果,設(shè)計(jì)一個(gè)主Activity和一個(gè)子Activity(Sub-Activity),使用主Activity上的按鈕啟動子Activity,并將子Activity的一些信息返回給主Activity,并顯示在主Activity上,需要的朋友可以參考一下2021-12-12

