1. 程式人生 > >檢測電池電量和充電狀態

檢測電池電量和充電狀態

當我們想要更改後臺資料的重新整理速率來減少對使用者影響的時候,先檢測下當前的剩餘電量和充電狀態是個不錯的開始。

在執行更新資料操作對使用者電池壽命的影響取決於當前的剩餘電量和充電狀態。當裝置在通過交流電充電的時候去更新資料對裝置電池壽命的影響是微不足道的,所以在大部分情況下當裝置在使用交流電充電的時候,您都可以最大化您的資料更新頻率。相反的,如果裝置沒有在充電,減少更新速率會延長裝置電池的使用壽命。

同樣,您還可以檢測電池電量資訊,當剩餘電量很少的時候,您可以減少更新頻率 甚至停止更新。

檢測當前的充電狀態

由於這是個密集型(sticky)通知,所以您不需要註冊一個 ,只要簡單的呼叫 registerReceiver

 該函式並設定引數為 null 即可獲得到包含了電池資訊的Intent,當然您也可以設定一個  物件作為引數,我們會在後面小節中看到這種情況,暫時我們先設定其為null吧, 程式碼如下:

Java
12IntentFilter ifilter=newIntentFilter(Intent.ACTION_BATTERY_CHANGED);Intent batteryStatus=context.registerReceiver(null,ifilter);

如果當前裝置正在充電的話,您還可以獲取具體的充電方式 — 通過USB或者交流電充電:

Java
1 2 3 4 5 6 7 8 9 // Are we charging / charged? intstatus = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS,-1); booleanisCharging =status==BatteryManager.BATTERY_STATUS_CHARGING|| status==BatteryManager.BATTERY_STATUS_FULL; // How are we charging?
intchargePlug =battery.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1); booleanusbCharge =chargePlug==BATTERY_PLUGGED_USB; booleanacCharge =chargePlug==BATTERY_PLUGGED_AC;

當裝置在使用交流電充電的時候,您可以最大化資料更新頻率;如果在使用USB充電,您應該減少更新頻率;如果沒有在充電 更新頻率應該更小。

檢測充電狀態的改變

裝置是否充電是經常發生的,所以根據裝置是否充電來修改更新頻率是非常重要的。

Java
123456<receiver android:name=".PowerConnectionReceiver"><intent-filter><action android:name="android.intent.action.ACTION_POWER_CONNECTED"/><action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/></intent-filter></receiver>
Java
1 2 3 4 5 6 7 8 9 10 11 12 publicclassPowerConnectionReceiverextendsBroadcastReceiver{ @Override publicvoidonReceive(Contextcontext,Intentintent){ intstatus=intent.

相關推薦

檢測電池電量充電狀態

當我們想要更改後臺資料的重新整理速率來減少對使用者影響的時候,先檢測下當前的剩餘電量和充電狀態是個不錯的開始。 在執行更新資料操作對使用者電池壽命的影響取決於當前的剩餘電量和充電狀態。當裝置在通過交流電充電的時候去更新資料對裝置電池壽命的影響是微不足道的,所以在

Android 優化電池使用時間 ——監控電池電量充電狀態

時常看Android官網開發文件,最近突然發現Android官網提供了一些中文翻譯文件,真心感覺不錯。考慮很大一部分童鞋都生活在大中華局域網裡,不能暢遊世界,特轉載相關係列文件,以供大家一起學習,原文參見此處。 監控電池電量和充電狀態 如果您要更改後

Android監測電量充電狀態

Contents 監測電量和充電狀態... 1 確定當前充電狀態... 1 監測充電狀態變化... 1 確定當前電量水平... 2 監測電量的重要變化... 2   監測電量和充電狀態 當你調整後臺更新的頻率以降低頻繁更新導致電池老化的問題時,從檢查當前電量

Android中檢查、監聽電量充電狀態的方法

當你在更改後臺更新頻率來減少這些更新對電池壽命的影響時,檢查當前電量和充電狀態是一個好的開始。 電池壽命通過剩餘電量和充電狀態來影響應用更新的執行。當用交流電充電時,執行更新操作對裝置的影響是微不足道的,所以在大多數案例裡,你可以把更新頻率調到最快。如果裝置不在充電,降低更新頻率可以幫助延長電池壽命。

Android 判斷電池是否為充電狀態的方法

1. 工具類方法 package com.android.settings.fuelgauge; import android.content.Context; import android.content.Intent; import android.content.Intent

Unity簡單實現電量充電狀態顯示

簡介: 很多遊戲內都有顯示當前網路、Ping值、電量、充電狀態等需求,Unity給我們提供了豐富的API,可以簡單實現這些功能。 在使用Ping類和FPSManager實現了對網路狀態和fps狀態的顯示以後,簡單的使用SystemInfo類實現電量以及狀態顯示。 試

MTK Android O 充電狀態電池電量100%時不顯示閃電圖示

需求: android 8.1.1版本google原生充電的時候都會顯示一個閃電的形狀,客戶要求在百分之百電量的時候不顯示閃電 修改: frameworks\base\packages\SettingsLib\src\com\android\settingslib\graph\Bat

android 獲取充電狀態 電池電量

public class MainActivity extends Activity { /** * 先宣告一個 IntentFilter 物件 */ private IntentFilter mIntentFilter; private TextVie

adb命令檢測apk啟動時間、內存、CPU使用情況、流量、電池電量等——常用的adb命令

serial 信息 proc idg 情況 電量 pid art str ADB:Android Debug Bridge,是Android SDK裏一個可以直接操作安卓模擬器或真實設備的工具,頗為強大。 檢測APP: adb shell am start

HTML5全屏,頁面可見性,訪問攝像頭麥克風,檢測電池,預載入網頁功能

1,全屏 // 找到適合瀏覽器的全屏方法 function launchFullScreen(element) { if(element.requestFullScreen) { element.requestFullScreen(); } else if(e

Android 獲取電池是否充電狀態、充電器型別

0. demo 下載 https://github.com/sufadi/BatteryInfo 1. 電池廣播獲取充電狀態 // 電池狀態 import static android.os.BatteryManager.EXTRA_STATUS; // 未知 import

[thinkPHP5專案實戰_23]管理員登入資訊展示、登出登入狀態檢測

1.管理員登入資訊展示和修改 登入成功後需要在頭部展示登入的管理員的名稱資訊,並且點選修改能跳轉到修改頁面進行操作 登入成功後,需要將使用者的資訊寫入伺服器的session中,從session中獲取使用者名稱和id thinkPHP5的session使用方法:https:/

狀態列上有顯示電池電量百分比

我們所使用的Android手機的狀態列上,一般都有電池電量百分比的顯示,方便使用者知悉手機剩餘百分之多少電量!我們的P6S手持機和ITAB-01平板上需要下拉狀態列才能看到電池電量百分比:為了讓使用者能夠更直觀的看到我們的產品上電池的使用情況,我在狀態列上添加了電池電量百分比

獲取Android裝置電池電量狀態

方法一:註冊廣播 這個方法網上一搜一大堆,我也貼出部分程式碼 IntentFilter filter2 = new IntentFilter(); filter2.addAction(Inten

電池電量報警關機策略電量圖示變化規則表

為幫助大家除錯和查閱, jwisp總結了電池電量報警, 關機, 電量圖示變化規則表. 如下: 關鍵類和其位置: BatteryService.java (/frameworks/base/services/java/com/android/server/) com_android_server_Batter

安卓 電池電量及判斷是否正在充電

public class AllBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {int networ

DIY儀表24位ADC,鋰電池供電可充電,變態級精度、線性度...

先來說下板子功能,所有引數精度絕對實打實的和DMM7510儀表對照過,有圖有真相的 主控STM32L,顯示OLED 0.96英寸,電壓都是用三點校準的方法用STM32L自帶EEPROM儲存引數,電流是多段線校準的方法。用預設精度達到萬分知幾沒啥問題! 1.測量電壓,短路波動

安卓開發—自定義電池電量顯示狀態

1、編寫broadcastreceiver class BatteryReceiver extends BroadcastReceiver { @Override

Oracle session active inactive 狀態 說明(與死連線檢測DCD ,客戶端的聯接仍然是活動的 有關)

一. Session 狀態說明             可以通過v$session 檢視的status列檢視session 的狀態。  關於該檢視的使用,參考聯機文件: V$SESSION STATUS VARCHAR2(8) Status of the session: ACTIVE -

Tensorflow實現Mask R-CNN實例分割通用框架,檢測,分割特征點定位一次搞定(多圖)

優點 設計 orf 時間 rcnn 超越 rain 沒有 add Mask R-CNN實例分割通用框架,檢測,分割和特征點定位一次搞定(多圖) 導語:Mask R-CNN是Faster R-CNN的擴展形式,能夠有效地檢測圖像中的目標,同時還能為每個實例生成一個