我們需要獲取當前手機的電量,這時候我們就需要用到廣播了,我們都知道在動態註冊廣播的時候,我們需要傳入乙個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);當然,由於我們是動態註冊廣播,所以不要忘了在生命週期的ondestroy()方法中取消註冊廣播:2 receiver = new batteryreceiver(tvelectric);
3 registerreceiver(receiver, filter);
@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...