首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Android 手机电池电量的应用

Android 手机电池电量的应用

原理概述:
手机电池电量的获取在应用程序的开发中也很常用,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,不写验证不予通过哟~
返回列表