获取手机电池的剩余电量
取得手机电池的剩余量
* Android API中的BroadcastReceiver(Android.content.BroadcastReceiver)
* 类有点像Button中的Listener,当Receiver被注册后,会在后台等待其他程序
* 的调用,程序将通过注册BroadcastReceiver时设置的IntentFilter来捕捉系统
* 发出的Intent.ACTION_BATTERY_CHANGED这个action,再以此取得手机电池的剩
* 余量。
public class Ex06_02Activity extends Activity { private int intLevel; private int intScale; private Button mButton01; private AlertDialog d; // 创建BroadcastReceiver private BroadcastReceiver mBatInfoReveiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub String action = intent.getAction(); // 如果捕捉到action是ACRION_BATTERY_CHANGED // 就运行onBatteryInfoReveiver() if (intent.ACTION_BATTERY_CHANGED.equals(action)) { intLevel = intent.getIntExtra("level", 0); intScale = intent.getIntExtra("scale", 100); onBatteryInfoReceiver(intLevel, intScale); } } }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mButton01 = (Button) findViewById(R.id.myButton1); mButton01.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 注册一个BroadcastReceiver,作为访问电池计量之用 registerReceiver(mBatInfoReveiver, new IntentFilter( Intent.ACTION_BATTERY_CHANGED)); } }); } // 拦截到ACTION_BATTRY_CHANGED后要执行的动作 private void onBatteryInfoReceiver(int intLevel, int intScale) { // TODO Auto-generated method stub d = new AlertDialog.Builder(Ex06_02Activity.this).create(); d.setTitle(R.string.str_dialog_title); d.setMessage(getResources().getString(R.string.str_dialog_body) + String.valueOf(intLevel * 100 / intScale) + "%"); d.setButton(getResources().getString(R.string.str_button2), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub // 取消注册,并关闭对话框 unregisterReceiver(mBatInfoReveiver); d.dismiss(); } }); d.show(); };
}
系统获取电池方法以及根据电量改变指示灯的颜色,在BatteryService类中修改
final int level = mBatteryProps.batteryLevel;final int status = mBatteryProps.batteryStatus;final int batteryLowLedOn = 1000;final int batteryLowLedOff = 3000;
if (level <= 20) {try {if (mLight != null)mLightsService.close(mLight.getType());} catch (Exception e) {e.printStackTrace();}if (status == BatteryManager.BATTERY_STATUS_CHARGING) {// Solid red when battery is charging// mBatteryLight.setColor(mBatteryLowARGB);mLight = new com.android.internal.policy.Light(Light.CHARGING, 3000, 5000, mBatteryLowARGB);} else {// Flash red when battery is low and not charging// mBatteryLight.setFlashing(mBatteryLowARGB,// LightsService.LIGHT_FLASH_TIMED,// batteryLowLedOn, batteryLowLedOff);mLight = new com.android.internal.policy.Light(Light.LOW_BATTERY, batteryLowLedOn,batteryLowLedOff, mBatteryLowARGB);}try {mLightsService.open(mLight);} catch (Exception e) {e.printStackTrace();}} else {// mBatteryLight.turnOff();try {if (mLight != null)mLightsService.close(mLight.getType());elsemLightsService.close(com.android.internal.policy.Light.POWER_ALL); //i dont have time to test,set this to avoid the light not off} catch (Exception e) {e.printStackTrace();}if (level < 90) {mLight = new com.android.internal.policy.Light(Light.CHARGING, 3000, 5000, mBatteryMediumARGB);}else if(level >= 90){mLight = new com.android.internal.policy.Light(Light.CHARGE_COMPLETE,3000, 5000,mBatteryFullARGB);}else if (status == BatteryManager.BATTERY_STATUS_FULL){// mBatteryLight.setColor(mBatteryFullARGB);mLight = new com.android.internal.policy.Light(Light.CHARGE_COMPLETE, 0, 0, mBatteryFullARGB);}try {mLightsService.open(mLight);} catch (Exception e) {e.printStackTrace();}}
获取手机电池的剩余电量相关推荐
- 安卓项目查手机电量功能_Android获取手机电池电量用法实例
本文实例讲述了Android获取手机电池电量用法.分享给大家供大家参考.具体如下: 原理概述: 手机电池电量的获取在应用程序的开发中也很常用,Android系统中手机电池电量发生变化的消息是通过Int ...
- 获取手机电池信息及电池剩余使用时间问题说明
1.获取电池信息 通过电池状态改变广播 private BroadcastReceiver mBatInfoReceiver=new BroadcastReceiver(){public void o ...
- android 静态注册获取电量,获取手机电池百分比和电池容量方法
在智能手机的开发过程中,经常需要获取手机的电池信息.其实获取的方法很多,下面介绍下方法. 一:首先介绍获取电池容量.例如java反射方式获取.代码如下 package com.example.jame ...
- 获取手机电池百分比和电池容量方法
在智能手机的开发过程中,经常需要获取手机的电池信息.其实获取的方法很多,下面介绍下方法. 一:首先介绍获取电池容量.例如java反射方式获取.代码如下 package com.example.jame ...
- Android应用开发获取手机电池电量的简单方法
Intent batteryInfoIntent = getApplicationContext().registerReceiver( null ,new IntentFilter( Intent. ...
- Android开发实例大全
<Android开发实例大全> 基本信息 作者: 王东华 丛书名: Android移动开发技术丛书 出版社:电子工业出版社 ISBN:9787121173172 上架时间:2012-8-1 ...
- Unity获取安卓手机运营商信息
Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用 一个完整的游戏项目上线需要不断的完善优化,但是到了后期的开发不再仅仅是游戏了 ...
- Android中获取手机电量信息
有些时候我们需要在我们的应用上为用户展示当前手机的电量,这时候我们就需要用到广播了,我们都知道在动态注册广播的时候,我们需要传入一个BroadcastReceiver类对象,还有一个意图过滤器Inte ...
- Android之获取手机基本信息、内存信息、网路信息、电池信息,等一共18项数据
获取手机信息,代码复制可用,开发工具为:Android Studio 1.手机品牌 2.手机型号 3.屏幕分辨率 4.像素密度 5.屏幕尺寸 6.Android 系统版本 7.运行内存 8.储存空间 ...
最新文章
- mvc core2.1 Identity.EntityFramework Core 注册 (二)
- 从零开始入门 K8s | 应用配置管理
- 网上预约挂号系统代码_速看!全国民族运动会部分竞赛项目观众网上预约系统正式上线了...
- 【开发工具之Spring Tool Suite】6、用Spring Tool Suite简化你的开发
- 24 MM配置-采购-配额管理-定义编码范围
- mysql自动关闭_服务器mysql数据库老自动停止,请问怎么回事
- Go语言的异常处理之errors,panic, recover
- secureCRT下载地址,亲测有效
- ThinkPHP自定义错误页面
- 安装jdk的时候为什么会有两个jre文件
- 2019DeeCamp夏令营总结
- 算法11 抓住波粒二象性的火星人
- 浏览器的作用不只是搜索、浏览网页,它还隐藏着这些功能
- 莫古力最新服务器,《最终幻想14》将调整现有人口平均化策略
- 关于存储器中的地址与数据的对应关系
- 大型网站系统架构的演化
- 单机Eureka的构建
- IPV4和IPV56的区别
- 解决ios在微信内置浏览器中video播放的全屏问题
- 电子与通信工程专业毕设选题推荐
热门文章
- java使用jdbc连接oracle,实现自定义sql查询,加载字段注释
- 我所了解的植物营养学常识,感兴趣的进~
- [报错]执行npm install.报If you are behind a proxy,please make sure that the proxy cinfig is set property.
- 2021滁州中学高考成绩查询,2021年滁州高考状元是谁分数多少分,历年滁州高考状元名单...
- OOA、OOD、OOP是什么?
- 老板挖个鱼塘,让用户免费钓鱼,结果所有人都惊呆了……
- Schemaless架构(二):Uber基于MySQL的Trip数据库
- 计算阶乘之后的零个数
- 中国超级计算机第一次获得冠军,中国“芯”超级计算机首获世界冠军
- 用 Python 制作一个桌面宠物,好玩!