Android中获取手机电量信息
有些时候我们需要在我们的应用上为用户展示当前手机的电量,这时候我们就需要用到广播了,我们都知道在动态注册广播的时候,我们需要传入一个BroadcastReceiver类对象,还有一个意图过滤器IntentFilter,平时我们使用自定义广播的时候IntentFilter中的action可以自定义写成任意形式,但是如果我们要过去系统电量,就需要用到这个系统为我们提供好的action,Intent.ACTION_BATTERY_CHANGED。同样的,因为我们监听的是系统广播,所以广播的发送方是系统,我们只需要在需要接受到改广播的类中注册广播就可以了。
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
然后我们自定义了一个BroadcastReceiver,用来处理广播中的获得电量的逻辑代码:
package ggcomic.rabbit.lx.ggcomic.broadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.TextView; /**
* 监听获取手机系统剩余电量
* Created by Lx on 2016/9/17.
*/
public class BatteryReceiver extends BroadcastReceiver {
private TextView pow; public BatteryReceiver(TextView pow) {
this.pow = pow;
} @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;
pow.setText(percent + "%");
}
}
这里我们调用intent.getExtras()方法得到intent携带的Bundle集合,系统为我们写好了一些字段,如我们使用的"level","scale",分别是存储的当前电量和总电量信息。这是约定俗成的,Google的开发工程师为我们写好的,记住会用就可以。我们这里需要在一个控件上展示出来我们的当前电量,于是我在广播接收器的构造函数中传递进来了该控件的实例。得到当前电量和总电量之后,我们就可以计算出当前电量剩余的百分比,然后设置在控件上。自定义完广播接收器后,我们还需要在需要接受广播的类中注册广播,如下所示:
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
receiver = new BatteryReceiver(tvElectric);
registerReceiver(receiver, filter);
当然,由于我们是动态注册广播,所以不要忘了在生命周期的onDestroy()方法中取消注册广播:
@Override
protected void onDestroy() {
super.onDestroy();
//销毁广播
unregisterReceiver(receiver);
}
这样,我们就成功获得了当前电量的百分比,是不是很简单呢~
Android中获取手机电量信息的更多相关文章
- windowsphone中获取手机位置信息
首先在界面中加入一个textblock控件以显示信息 using System; using System.Collections.Generic; using System.IO; using Sy ...
- Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)
本节内容主要是讲解ActivityManager的使用,通过ActivityManager我们可以获得系统里正在运行的activities,包括 进程(Process)等.应用程序/包.服务(Serv ...
- android中获取屏幕的信息
获取屏幕信息比较简单,可以通过android的sdk自带的工具类DisplayMetrics.话不多说,上代码: // 获取屏幕的信息 DisplayMetrics dm = new DisplayM ...
- Android中获取电池电量
/** * * @author chrp * *显示当前电池电量 */ public class MainActivity extends Activity { private TextView tv ...
- 【转】android 安卓APP获取手机设备信息和手机号码的代码示例
http://blog.csdn.net/changemyself/article/details/7421476 下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓 ...
- android利用ContentResolver访问者获取手机联系人信息
转载自:http://www.jb51.net/article/106379.htm 首先需要在AndroidManifest.xml文件中添加权限: <uses-permission andr ...
- android 安卓APP获取手机设备信息和手机号码的代码示例
下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓手机.手机SIM卡确保插入手机里.eclipse ADT和android-sdk开发环境 第一步:新建一个andro ...
- Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息
Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息 本文目录: 获取手机信息 设置权限 申请权限 查询联系人 获取手机定位信息 调用高德地图,设置显示2个坐标点的位置,以及 ...
- Android中获取系统上安装的APP信息
Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00003259 Android中获取系统上安装的APP信 ...
随机推荐
- [LintCode] 二叉树的前序遍历
The recursive solution is trivial and I omit it here. Iterative Solution using Stack (O(n) time and ...
- 【VUE】VUE相关学习和知识备份
一.学习资料参考 1.1.Vue.js 官网:Vue.js https://cn.vuejs.org/ 官方文档:介绍 - Vue.js https://cn.vuejs.org/v2/guide/ ...
- PAT 1018 Public Bike Management(Dijkstra 最短路)
1018. Public Bike Management (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...
- 巨蟒python全栈开发数据库前端5:JavaScript1
1.js介绍&变量&基础数据类型 2.类型查询&运算符&if判断&for循环 3.while循环&三元运算符 4.函数 5.今日总结 1.js介绍&am ...
- boost:property_tree::ini_parser:::read_ini 读取ini时崩溃
原因: 1 路径错误 2 配置文件中某一行缺少=,例如用// 做注释的,前面应该加";" 解决办法: 添加异常处理,实例代码如下: #include <boost/prope ...
- IO流入门-第三章-FileInputStream_FileOutputStream复制
利用FileInputStream和FileOutputStreamj进行复制粘贴 /* 文件复制粘贴 */ import java.io.*; public class FileInput_Outp ...
- python基础之类的封装
从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,还有alex一起装进麻袋,然后把麻袋封上口子.但其实这种理解相当片面 一 封装什么 你钱包的有多少钱(数据的封装) 你的性取向( ...
- Django之html-模板继承
在编程的过程中,我们经常会重复性的写了很多的代码,比如一个页面的框架部分,这样我又多少个页面就得写上多少次,这样既不好维护,也不够高效,所以我们引出了html的模板继承部分. 1.写好一个html文件 ...
- 我的Android进阶之旅------>关于使用CSDN-markdown编辑器来编写博客
关于使用MarkDown编辑器的原因 什么是 Markdown 制作一份待办事宜 Todo 列表 书写一个质能守恒公式LaTeX 高亮一段代码code 高效绘制 流程图 高效绘制序列图 绘制表格 更详 ...
- python selenium 下载安装(一)
1. python安装地址:https://www.python.org/downloads/windows/ 2. 下载想要安装的版本,建议3.5,3.6版本 3. 安装一路下一步(也可自定义安装 ...