Android中獲取手機電量資訊

2021-09-13 15:45:45 字數 1427 閱讀 6987

我們需要獲取當前手機的電量,這時候我們就需要用到廣播了,我們都知道在動態註冊廣播的時候,我們需要傳入乙個broadcastreceiver類物件,還有乙個意圖過濾器intentfilter,平時我們使用自定義廣播的時候intentfilter中的action可以自定義寫成任意形式,但是如果我們要過去系統電量,就需要用到這個系統為我們提供好的action,intent.action_battery_changed。同樣的,因為我們監聽的是系統廣播,所以廣播的傳送方是系統,我們只需要在需要接受到改廣播的類中註冊廣播就可以了。

intentfilter filter = new intentfilter(intent.action_battery_changed);
寫乙個廣播的

package ggcomic.rabbit.lx.ggcomic.broadcastreceiver;

import android.content.broadcastreceiver;

import android.content.context;

import android.content.intent;

import android.widget.textview;

/*** 監聽獲取手機系統剩餘電量

* created by lx on 2016/9/17.

*/public class batteryreceiver extends broadcastreceiver

@override

public void onreceive(context context, intent intent)

}intent.getextras()方法得到intent攜帶的bundle集合,系統為我們寫好了一些字段,如我們使用的"level","scale",分別是儲存的當前電量和總電量資訊。這是約定俗成的,google的開發工程師為我們寫好的,記住會用就可以。我們這裡需要在乙個控制項上展示出來我們的當前電量,於是我在廣播接收器的建構函式中傳遞進來了該控制項的例項。得到當前電量和總電量之後,我們就可以計算出當前電量剩餘的百分比,然後設定在控制項上。自定義完廣播接收器後,我們還需要在需要接受廣播的類中註冊廣播,如下所示:

1 intentfilter filter = new intentfilter(intent.action_battery_changed);

2 receiver = new batteryreceiver(tvelectric);

3 registerreceiver(receiver, filter);

當然,由於我們是動態註冊廣播,所以不要忘了在生命週期的ondestroy()方法中取消註冊廣播:

@override

protected void ondestroy() {

super.ondestroy();

//銷毀廣播

unregisterreceiver(receiver);

battery 獲取手機電量資訊

我們如果想要獲得手機的電池電量資訊,可以借助廣播來實現。因為當手機電池電量發生變化的時候,系統會傳送乙個廣播。具體 如下 註冊intentfilter.addaction intent.action battery changed mcontext.registerreceiver mhallrec...

android 獲取手機電話號碼

telephonymanager telmanager telephonymanager getsystemservice context.telephony service 獲取裝置的 號碼 string num telmanager.getline1number 顯示 號碼 textview t...

手機電池電量應用

原理概述 手機電池電量的獲取在應用程式的開發中也很常用,android系統中手機電池電量發生變化的訊息是通過intent廣播來實現的,常用的intent的action有 intent.action battery changed 電池電量發生改變時 intent.action battery low...