Android 手機電池電量的應用
發布時間:2013-9-6 14:33
發布者:
reggae
原理概述:
手機電池電量的獲取在應用程序的開發中也很常用,Android系統中手機電池電量發生變化的消息是通過Intent廣播來實現的,常用的Intent的Action有 Intent.ACTION_BATTERY_CHANGED(電池電量發生改變時)、Intent.ACTION_BATTERY_LOW(電池電量達到下限時)、和Intent.ACTION_BATTERY_OKAY(電池電量從低恢復到高時)。
當需要在程序中獲取電池電量的信息時,需要為應用程序注冊BroadcastReceiver組件,當特定的Action事件發生時,系統將會發出相應的廣播,應用程序就可以通過BroadcastReceiver來接受廣播,并進行相應的處理。
main.xml布局文件
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textOn="停止獲取電量信息"
- android:textOff="獲取電量信息" />
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
復制代碼
BatteryActivity類
- package com.ljq.activity;
- import android.app.Activity;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.os.Bundle;
- import android.widget.CompoundButton;
- import android.widget.TextView;
- import android.widget.ToggleButton;
- import android.widget.CompoundButton.OnCheckedChangeListener;
- public class BatteryActivity extends Activity {
- private ToggleButton tb=null;
- private TextView tv=null;
- private BatteryReceiver receiver=null;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- receiver=new BatteryReceiver();
- tv=(TextView)findViewById(R.id.tv);
- tb=(ToggleButton)findViewById(R.id.tb);
- tb.setOnCheckedChangeListener(new OnCheckedChangeListener(){
- public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
- //獲取電池電量
- if(isChecked){
- IntentFilter filter=new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
- registerReceiver(receiver, filter);//注冊BroadcastReceiver
- }else {
- //停止獲取電池電量
- unregisterReceiver(receiver);
- tv.setText(null);
- }
- }
- });
- }
- private class BatteryReceiver extends BroadcastReceiver{
- @Override
- public void onReceive(Context context, Intent intent) {
- int current=intent.getExtras().getInt("level");//獲得當前電量
- int total=intent.getExtras().getInt("scale");//獲得總電量
- int percent=current*100/total;
- tv.setText("現在的電量是"+percent+"%。");
- }
- }
- }
復制代碼 本文講述了Android 手機電池電量的應用,希望本文能給讀者帶來靈感,幫助讀者解決疑問,感謝閱讀本文。更多安卓技術問題歡迎加群探討:278744577,驗證碼:eec,不寫驗證不予通過喲~
|