Android 手机电池电量的应用
时间:09-06
来源:互联网
点击:
原理概述:
手机电池电量的获取在应用程序的开发中也很常用,Android系统中手机电池电量发生变化的消息是通过Intent广播来实现的,常用的Intent的Action有 Intent.ACTION_BATTERY_CHANGED(电池电量发生改变时)、Intent.ACTION_BATTERY_LOW(电池电量达到下限时)、和Intent.ACTION_BATTERY_OKAY(电池电量从低恢复到高时)。
当需要在程序中获取电池电量的信息时,需要为应用程序注册BroadcastReceiver组件,当特定的Action事件发生时,系统将会发出相应的广播,应用程序就可以通过BroadcastReceiver来接受广播,并进行相应的处理。
main.xml布局文件
BatteryActivity类
手机电池电量的获取在应用程序的开发中也很常用,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 相关文章:
- 传联想明年将推全球第3款Android手机OPhone/图(11-15)
- 详解Android组件的使用(01-07)
- 基于Android平台的双网双待的设计方法(09-10)
- Android平台手机防盗系统的安全解决方案(06-10)
- 13个基于Android平台的设计汇总,包括通信客户端、手机游戏等(02-10)
- 面向三网融合的互联网电视关键技术与发展趋势(11-24)
