- UID
- 1023166
- 性别
- 男
- 来自
- 燕山大学
|
原理概述:
手机电池电量的获取在应用程序的开发中也很常用,Android系统中手机电池电量发生变化的消息是通过Intent广播来实现的,常用的Intent的Action有 Intent.ACTION_BATTERY_CHANGED(电池电量发生改变时)、Intent.ACTION_BATTERY_LOW(电池电量达到下限时)、和Intent.ACTION_BATTERY_OKAY(电池电量从低恢复到高时)。
当需要在程序中获取电池电量的信息时,需要为应用程序注册BroadcastReceiver组件,当特定的Action事件发生时,系统将会发出相应的广播,应用程序就可以通过BroadcastReceiver来接受广播,并进行相应的处理。
main.xml布局文件
- androidrientation="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,不写验证不予通过哟~ |
|