博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android_(自动化)自动获取手机电池的剩余电量
阅读量:4952 次
发布时间:2019-06-11

本文共 4315 字,大约阅读时间需要 14 分钟。

 

 自动获取手机电池的剩余电量

 

通过使用BroadcastReceiver的特性来获取手机电池的电量,注册BroadcastReceiver时设置的IntentFilter来获取系统发出的Intent.ACTION_BATTERY_CHANGED,然后以此来获取电池的电量。

 

运行截图:

 

 

程序结构

 

package com.example.asus.gary_040a;import android.app.Dialog;import android.content.BroadcastReceiver;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.IntentFilter;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.widget.Button;import android.widget.TextView;import org.w3c.dom.Text;public class MainActivity extends AppCompatActivity {    private int intLevel;    private int intScale;    private Button mButton01;    private TextView tv;    //创建BroadcastReceiver    private BroadcastReceiver mBatInfoReveiver = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            String action = intent.getAction();            //如果捕捉到的Action是ACTION_BATTERY_CHANGED则运行onBatteryInforECEIVER()            if(intent.ACTION_BATTERY_CHANGED.equals(action))            {                //获得当前电量                intLevel = intent.getIntExtra("level",0);                //获得手机总电量                intScale = intent.getIntExtra("scale",100);                 // 在下面会定义这个函数,显示手机当前电量                onBatteryInfoReceiver(intLevel, intScale);            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mButton01 = (Button) findViewById(R.id.myButton1);        mButton01.setOnClickListener(new Button.OnClickListener() {            @Override            public void onClick(View v) {                // 注册一个BroadcastReceiver,作为访问电池计量之用                registerReceiver(mBatInfoReveiver, new IntentFilter(                        Intent.ACTION_BATTERY_CHANGED));            }        });    }    // 拦截到ACTION_BATTRY_CHANGED后要执行的动作    private void onBatteryInfoReceiver(int intLevel, int intScale) {        // TODO Auto-generated method stub         int percent = intLevel*100/ intScale;        //得到的person就是百分比电量        //不乘100得到的percent为0        tv=(TextView) findViewById(R.id.myTextView02);        tv.setText("现在的电量是"+percent+"%。");    };}
MainActivity

 

acvivity_main

 

一、界面布局

  一个Button按钮,一个TextView文本框  

  点击Button时会在TextView上显示(手机电量)提示

 

二、实现程序功能

  1、如果捕捉的Action是ACTION_BATTERY_CHANGED则运行onBatteryInfoReceiver()显示当前手机电量

private BroadcastReceiver mBatInfoReveiver = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            String action = intent.getAction();            //如果捕捉到的Action是ACTION_BATTERY_CHANGED则运行onBatteryInforECEIVER()            if(intent.ACTION_BATTERY_CHANGED.equals(action))            {                //获得当前电量                intLevel = intent.getIntExtra("level",0);                //获得手机总电量                intScale = intent.getIntExtra("scale",100);                 // 在下面会定义这个函数,显示手机当前电量                onBatteryInfoReceiver(intLevel, intScale);            }        }    };

 

 2、对Button按钮添加单击后的事件响应动作,注册系统BroadcastReceiver广播事件来访问电池电量

protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mButton01 = (Button) findViewById(R.id.myButton1);        mButton01.setOnClickListener(new Button.OnClickListener() {            @Override            public void onClick(View v) {                // 注册一个BroadcastReceiver,作为访问电池计量之用                registerReceiver(mBatInfoReveiver, new IntentFilter(                        Intent.ACTION_BATTERY_CHANGED));            }        });    }

 

 3、定义方法onBatteryInfoReceiver(),通过这个方法能在TextView文本框上显示手机剩余电量

// 拦截到ACTION_BATTRY_CHANGED后要执行的动作    private void onBatteryInfoReceiver(int intLevel, int intScale) {        // TODO Auto-generated method stub         int percent = intLevel*100/ intScale;        //得到的person就是百分比电量        //不乘100得到的percent为0        tv=(TextView) findViewById(R.id.myTextView02);        tv.setText("现在的电量是"+percent+"%。");    };

 

转载于:https://www.cnblogs.com/1138720556Gary/p/9104468.html

你可能感兴趣的文章
无线路由协议Mflood详解(转)
查看>>
最短路径之Bellman-Ford(可以解决负边)
查看>>
wincc7.4安装授权 全(文件分享)
查看>>
作为JavaScript开发人员,这些必备的VS Code插件你都用过吗?
查看>>
省选爆零记
查看>>
1. 微博大学数学答疑系列(1)
查看>>
如何让windows版Safari支持H5 audio/video?
查看>>
Android开源项目源码下载(不断更新中)
查看>>
opendove中的odgw所需要的内核模块
查看>>
记录cmder安装和更换背景图
查看>>
PS完美破解安装
查看>>
const函数
查看>>
第一天开通博客园
查看>>
HDU1754(线段树)
查看>>
如何去掉HTML5Viewer中的滚动条
查看>>
并查集 分类: 并查集 2015-07-09 16:...
查看>>
Oracle数据文件迁移
查看>>
ORACLE基本操作
查看>>
KernelZ02_尝试过程
查看>>
NGUIJoysticK
查看>>