Android 手机电池电量的应用

发布时间:2013-9-6 14:33    发布者:reggae
关键词: android , 手机电池
原理概述:
手机电池电量的获取在应用程序的开发中也很常用,Android系统中手机电池电量发生变化的消息是通过Intent广播来实现的,常用的Intent的Action有 Intent.ACTION_BATTERY_CHANGED(电池电量发生改变时)、Intent.ACTION_BATTERY_LOW(电池电量达到下限时)、和Intent.ACTION_BATTERY_OKAY(电池电量从低恢复到高时)。
当需要在程序中获取电池电量的信息时,需要为应用程序注册BroadcastReceiver组件,当特定的Action事件发生时,系统将会发出相应的广播,应用程序就可以通过BroadcastReceiver来接受广播,并进行相应的处理。
main.xml布局文件
  1. android:orientation="vertical"
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent">
  4. android:layout_width="fill_parent"
  5. android:layout_height="wrap_content"
  6. android:textOn="停止获取电量信息"
  7. android:textOff="获取电量信息" />
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content" />
复制代码

BatteryActivity类
  1. package com.ljq.activity;

  2. import android.app.Activity;
  3. import android.content.BroadcastReceiver;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.content.IntentFilter;
  7. import android.os.Bundle;
  8. import android.widget.CompoundButton;
  9. import android.widget.TextView;
  10. import android.widget.ToggleButton;
  11. import android.widget.CompoundButton.OnCheckedChangeListener;

  12. public class BatteryActivity extends Activity {
  13. private ToggleButton tb=null;
  14. private TextView tv=null;
  15. private BatteryReceiver receiver=null;

  16. @Override
  17. public void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.main);

  20. receiver=new BatteryReceiver();
  21. tv=(TextView)findViewById(R.id.tv);
  22. tb=(ToggleButton)findViewById(R.id.tb);
  23. tb.setOnCheckedChangeListener(new OnCheckedChangeListener(){
  24. public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
  25. //获取电池电量
  26. if(isChecked){
  27. IntentFilter filter=new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
  28. registerReceiver(receiver, filter);//注册BroadcastReceiver
  29. }else {
  30. //停止获取电池电量
  31. unregisterReceiver(receiver);
  32. tv.setText(null);
  33. }

  34. }
  35. });

  36. }

  37. private class BatteryReceiver extends BroadcastReceiver{
  38. @Override
  39. public void onReceive(Context context, Intent intent) {
  40. int current=intent.getExtras().getInt("level");//获得当前电量
  41. int total=intent.getExtras().getInt("scale");//获得总电量
  42. int percent=current*100/total;
  43. tv.setText("现在的电量是"+percent+"%。");
  44. }
  45. }

  46. }
复制代码
本文讲述了Android 手机电池电量的应用,希望本文能给读者带来灵感,帮助读者解决疑问,感谢阅读本文。更多安卓技术问题欢迎加群探讨:278744577,验证码:eec,不写验证不予通过哟~

本文地址:https://www.eechina.com/thread-120427-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表